#include "triangles.h"
#include <bits/stdc++.h>
using namespace std;
vector<vector<int>> solve(int n) {
    vector<Triangle> all;
    for (int i=1;i<=n;i++) {
        for (int j=i+1;j<=n;j++) {
            for (int k=j+1;k<=n;k++) {
                all.push_back({i-1,j-1,k-1});
            }
        }
    }
    for (int i=0;i<n;i++) {
        for (int j=i;j<n;j++) {
            for (int k=j;k<n;k++) {
                vector<Triangle> l={all[i],all[j],all[k]};
                for (int v=0;v<n;v++) {
                    if (compare(l,{all[v]})==0) {
                        return {{all[v].i,all[v].j,all[v].k}};
                    }
                }
            }
        }
    }
    vector<int> p(n);
    iota(p.begin(),p.end(),0);
    do {
        vector<Triangle> l={{p[0],p[1],p[2]},{p[2],p[3],p[0]}};
        vector<Triangle> r={{p[0],p[1],p[3]},{p[1],p[2],p[3]}};
        if (compare(l,r)==0) {
            vector<vector<int>> ans={{p[0],p[1],p[2],p[3]}};
            return ans;
        }

    }while (next_permutation(p.begin(),p.end()));
    vector<Triangle> f,s;
    // Example of compare:
    // Пример использования функции 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 should be equal to 0.
    // compare_result будет равняться нулю, так как сравнивались одинаковые треугольники.
    
    // Example of return:
    // Пример возвращаемого значения:
    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;
}
