Pagini recente » Cod sursa (job #11495) | Cod sursa (job #2298009) | Cod sursa (job #3041387) | Cod sursa (job #2868239) | Cod sursa (job #1006415)
#include<fstream>
using namespace std;
const char iname[]="sortare.in";
const char oname[]="sortare.out";
const int maxn=5005;
ifstream f(iname);
ofstream g(oname);
int a[maxn],b[maxn],c[maxn],n,i,v[maxn],rez;
inline void go(int x,int y)
{
for(i=1;i<=n;++i)
if(v[i]==0)
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
if(b[i]==c[i])
go(b[i],i);
else
go(a[i],i);
g<<rez<<"\n";
for(i=1;i<=n;++i)
g<<v[i]<<" ";
g<<"\n";
}