Pagini recente » Cod sursa (job #1882351) | Cod sursa (job #2655390) | Cod sursa (job #2308079) | Cod sursa (job #2620664) | Cod sursa (job #2037172)
# include <fstream>
# define DIM 5010
using namespace std;
ifstream fin("sortare.in");
ofstream fout("sortare.out");
int v[DIM],a[DIM],b[DIM],c[DIM],n,m,nr,i,pas,ok;
int main () {
fin>>n;
m=n;
for(i=2;i<=n;i++){
fin>>a[i]>>b[i]>>c[i];
if(a[i]>b[i])
swap(a[i],b[i]);
if(b[i]>c[i])
swap(b[i],c[i]);
if(a[i]>b[i])
swap(a[i],b[i]);
}
for(;n;){
pas++;
if(n==1){
for(i=1;v[i]!=0;i++);
v[i]=1;
n=0;
continue;
}
if(a[n]==b[n]||b[n]==c[n]){
nr=0;
for(i=1;nr!=b[n];i++)
if(v[i]==0)
nr++;
v[i-1]=n;
n--;
continue;
}
nr=0;
ok=1;
if(n==2)
pas++;
for(i=1;;i++){
if(v[i]==0)
nr++;
if(nr==a[n]&&v[i]==0&&ok){
v[i]=n;
n--;
ok=0;
}
if(nr==b[n+1]&&!ok){
v[i]=n;
n--;
break;
}
}
}
fout<<pas<<"\n";
for(i=1;i<=m;i++)
fout<<v[i]<<" ";
fout<<"\n";
return 0;
}