Pagini recente » Cod sursa (job #461871) | Cod sursa (job #1946673) | Cod sursa (job #2682186) | Cod sursa (job #461611) | Cod sursa (job #1661833)
#include<cstdio>
#include<algorithm>
using namespace std;
struct piv{
int a;
int b;
int c;
}v[5010];
int n,i,j,a,b,c,nr,ns,x[5010],y[5010],z[5010];
FILE *f,*g;
void chg(int &a,int &b){
int aux = a;
a = b;
b = aux;
}
int main(){
f=fopen("sortare.in","r");
g=fopen("sortare.out","w");
fscanf(f,"%d",&n);
x[ ++nr ] = 1;
for(i=2;i<=n;i++){
fscanf(f,"%d%d%d",&v[i].a,&v[i].b,&v[i].c);
x[ ++nr ] = i;
}
while( nr >= 2 ){
ns++;
a = nr;
y[1] = x[ v[a].a ];
y[2] = x[ v[a].b ];
y[3] = x[ v[a].c ];
sort(y + 1, y + 4);
if( y[1] == y[2] || y[2] == y[3] )
z[ y[2] ] = nr;
else{
z[ y[1] ] = nr;
z[ y[2] ] = nr - 1;
}
nr = 0;
for(i=1;i<=n;i++){
if( !z[i] )
x[ ++nr ] = i;
}
}
if( nr == 1 ){
ns++;
z[ x[1] ] = 1;
}
fprintf(g,"%d\n",ns);
for(i=1;i<=n;i++){
fprintf(g,"%d ",z[i]);
}
fclose(f);
fclose(g);
return 0;
}