Pagini recente » Cod sursa (job #1319761) | Cod sursa (job #1917710) | Cod sursa (job #621024) | Cod sursa (job #2629106) | Cod sursa (job #3232264)
#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;
}