#include "triangles.h"

#include <bits/stdc++.h>

using namespace std;

std::vector<std::vector<int>> solve(int n) {
  assert(n == 4);
  for (int c = 0; c < n; ++c) {
    vector<int> vs;
    vs.reserve(3);
    for (int i = 0; i < 4; ++i) {
      if (i != c) vs.push_back(i);
    }
    // for (const auto& el : vs) {
    //   cout << el << ' ';
    // }
    // cout << endl;
    vector<Triangle> left = {{vs[0], vs[1], vs[2]}};
    vector<Triangle> right = {
        {c, vs[0], vs[1]}, {c, vs[1], vs[2]}, {c, vs[0], vs[2]}};

    int res = compare(left, right);
    if (res == 0) {
      vector<vector<int>> ans = {
          {c, vs[0], vs[1]}, {c, vs[1], vs[2]}, {c, vs[0], vs[2]}};
      return ans;
    }
  }

  for (int a = 0; a < 3; ++a) {
    for (int b = a + 1; b < 3; ++b) {
      int c = 0 + 1 + 2 - a - b;
      vector<Triangle> left = {{3, a, b}, {c, a, b}};
      vector<Triangle> right = {{3, c, a}, {3, c, b}};
      int res = compare(left, right);
      if (res == 0) {
        vector<vector<int>> ans = {{3, a, b}, {c, a, b}};
        return ans;
      }
    }
  }
  assert(false);

  // // Пример использования функции compare:
  // std::vector<Triangle> left = {Triangle(0, 1, 2)};
  // std::vector<Triangle> right = {Triangle(0, 1, 2)};
  // int compare_result = compare(left, right);
  // // compare_result будет равняться нулю, так как сравнивались одинаковые
  // треугольники.

  // // Пример возвращаемого значения:
  // std::vector<std::vector<int>> ans;
  // ans.push_back(std::vector<int>(n));
  // for (int i = 0; i < n; ++i) {
  //     ans[0][i] = i;
  // }
  // return ans;
}
