Cod sursa(job #2646586)

Utilizator PatrickCplusplusPatrick Kristian Ondreovici PatrickCplusplus Data 1 septembrie 2020 15:06:15
Problema Sortare Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("sortare.in");
ofstream fout("sortare.out");
int n, v[5005][3], maxim, ans[5005];
void pune(int pos, int x){
    int i = 0;
    while (pos){
        if (ans[i + 1] == 0) --pos;
        ++i;
    }
    ans[i] = x;

}
int main(){
    fin >> n;
    int m = n;
    for (int i = 2; i <= n; ++i){
        fin >> v[i][0] >> v[i][1] >> v[i][2];
        sort(v[i], v[i] + 3);
    }
    while (n > 1){
        ++maxim;
        if (v[n][0] == v[n][1] || v[n][1] == v[n][2]){
            pune(v[n][1], n);
            n -= 1;
        }
        else{
            pune(v[n][2], n);
            pune(v[n][1], n - 1);
            n -= 2;
        }
    }
    if (n == 1){
        pune(1, 1);
    }
    fout << maxim + 1 << "\n";
    for (int i = 1; i <= m; ++i){
        fout << ans[i] << " ";
    }
    fin.close();
    fout.close();
    return 0;
}