Cod sursa(job #1798019)

Utilizator iulianrotaruRotaru Gheorghe-Iulian iulianrotaru Data 4 noiembrie 2016 20:48:35
Problema Sortare Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#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]<<' ';
}