Pagini recente » Cod sursa (job #202550) | Cod sursa (job #2842684) | Cod sursa (job #98764) | Cod sursa (job #2866) | Cod sursa (job #2083043)
#include<bits/stdc++.h>
using namespace std;
ifstream f("sortare.in");
ofstream g("sortare.out");
int n;
vector<int>v(n+1);
struct linie{
int a;
int b;
int c;
};
int main(){
f>>n;
vector<int>aux(n+2);
vector<linie>l(n);
aux[n]=n;v[n]=0;v[0]=0;
aux[n+1]=n+1;
for(int i=1;i<n;++i){
aux[i]=i;v[i]=0;
f>>l[i].a>>l[i].b>>l[i].c;
}
int nr=n;
for(int i=n-1;i>0;--i){
if(l[i].a==l[i].b && l[i].a==l[i].c) {
v[aux[l[i].a]]=i;
aux.erase(aux.begin()+l[i].a);
}
else if(l[i].c==l[i].b) {
v[aux[l[i].c]]=i;
aux.erase(aux.begin()+l[i].c);
}
else {
v[aux[l[i].b]]=i;
v[aux[l[i].c]]=i+1;
aux.erase(aux.begin()+l[i].c);
aux.erase(aux.begin()+l[i].b);
--i;
}
--nr;
}
g<<nr<<'\n';
for(int i=1;i<=n;++i){if(v[i]==0) g<<"1 ";
else g<<v[i]<<" ";}
}