Pagini recente » Borderou de evaluare (job #140386) | Borderou de evaluare (job #336609) | Borderou de evaluare (job #622949) | Borderou de evaluare (job #2778379) | Cod sursa (job #3232265)
#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;
}