Pagini recente » Cod sursa (job #158530) | Cod sursa (job #573855) | Cod sursa (job #571509) | Cod sursa (job #2965739) | Cod sursa (job #1798019)
#include<fstream>
using namespace std;
ifstream f("sortare.in");
ofstream g("sortare.out");
int n,i,rez,a[1<<13],b[1<<13],c[1<<13],v[1<<13];
void go(int x,int y)
{
for(int i=1;i<=n;++i)
if(!v[i])
if(--x==0)
{
v[i]=y;
return;
}
}
int main()
{
f>>n;
a[1]=b[1]=c[1]=1;
for(i=2;i<=n;++i)
f>>a[i]>>b[i]>>c[i];
for(i=n;i;--i,++rez)
if(a[i]!=b[i]&&b[i]!=c[i]&&c[i]!=a[i]) go(a[i],i-1),go(b[i]-(a[i]<b[i]),i),--i;
else (b[i]==c[i])?go(b[i],i):go(a[i],i);
g<<rez<<'\n';
for(i=1;i<=n;++i) g<<v[i]<<' ';
}