Cod sursa(job #1016234)

Utilizator gerd13David Gergely gerd13 Data 25 octombrie 2013 22:27:56
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";
}