Cod sursa(job #3232265)

Utilizator Mihai_OctMihai Octavian Mihai_Oct Data 29 mai 2024 16:51:32
Problema Sortare Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("sortare.in");
ofstream fout("sortare.out");
int n, cn, i, ma, r[5002];
int a[5002][3];

static inline void Calc(int poz, int val) {
    int i = 0;
    while(poz) {
        if(r[i + 1] == 0) poz--;
        i++;
    }
    r[i] = val;
}

int main() {
    fin >> n;
    cn = n;
    for(i = 2; i <= n; i++) {
        fin >> a[i][0] >> a[i][1] >> a[i][2];
        sort(a[i], a[i] + 3);
    }

    while(n > 1) {
        ma++;
        if(a[n][0] == a[n][1] || a[n][1] == a[n][2]) {
            Calc(a[n][1], n);
            n--;
        }
        else {
            Calc(a[n][2], n);
            Calc(a[n][1], n - 1);
            n -= 2;
        }
    }

    if(n == 1) Calc(1, 1);
    fout << ma + 1 << "\n";
    for(i = 1; i <= cn; i++) fout << r[i] << " ";

    return 0;
}