Cod sursa(job #3232264)

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

using namespace std;

ifstream fin("sortare.in");
ofstream fout("sortare.out");
struct Element {
    int a, b, c;
} a[5002];
int n, cn, i, ma, r[5002];

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].a >> a[i].b >> a[i].c;
        if(a[i].a < a[i].b) swap(a[i].a, a[i].b);
        if(a[i].b < a[i].c) swap(a[i].b, a[i].c);
        if(a[i].a < a[i].b) swap(a[i].a, a[i].b);
    }

    while(n > 1) {
        ma++;
        if(a[n].a == a[n].b || a[n].b == a[n].c) {
            Calc(a[n].b, n);
            n--;
        }
        else {
            Calc(a[n].c, n);
            Calc(a[n].b, 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;
}