Cod sursa(job #2646576)

Utilizator PatrickCplusplusPatrick Kristian Ondreovici PatrickCplusplus Data 1 septembrie 2020 14:56:11
Problema Sortare Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 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 = 1, j = 1;
    while (pos){
        if (ans[i] != 0){
            ++i;
        }
        else{
            --pos;
            j = i;
            ++i;
        }
    }
    ans[j] = x;

}
int main(){
    fin >> n;
    v[0][0] = v[0][1] = v[0][2] = 1;
    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 > 0){
        ++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;
        }
    }
    fout << maxim << "\n";
    for (int i = 1; ans[i] != 0; ++i){
        fout << ans[i] << " ";
    }
    fin.close();
    fout.close();
    return 0;
}