Pagini recente » Cod sursa (job #793235) | Cod sursa (job #360717) | Cod sursa (job #291594) | Cod sursa (job #1382542) | Cod sursa (job #2646586)
#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 = 0;
while (pos){
if (ans[i + 1] == 0) --pos;
++i;
}
ans[i] = x;
}
int main(){
fin >> n;
int m = n;
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 > 1){
++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;
}
}
if (n == 1){
pune(1, 1);
}
fout << maxim + 1 << "\n";
for (int i = 1; i <= m; ++i){
fout << ans[i] << " ";
}
fin.close();
fout.close();
return 0;
}