Cod sursa(job #854103)

Utilizator stoicatheoFlirk Navok stoicatheo Data 12 ianuarie 2013 20:24:03
Problema Sortare Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#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(int 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";
}