Cod sursa(job #2393966)

Utilizator ionanghelinaIonut Anghelina ionanghelina Data 1 aprilie 2019 11:21:08
Problema Sortare Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include<bits/stdc++.h>
using namespace std;
const int maxN=(5e3+5);
int v[maxN],sol,a[maxN][5];

inline void punepunepune(int pos,int x)
{
    int where=1;
    while(pos)
    {
        if(!v[where]) pos--;
        where++;
    }

    v[where-1]=x;
}
int n;
int main()
{
    freopen("sortare.in","r",stdin);
    freopen("sortare.out","w",stdout);

    scanf("%d",&n);
    for(int i=2;i<=n;i++)
    {
        scanf("%d%d%d",&a[i][1],&a[i][2],&a[i][3]);
        sort(a[i]+1,a[i]+4);
    }

    int m=n;
    int sol=1;

    while(n>1)
    {
        sol++;
        if(a[n][1]!=a[n][2] && a[n][2]!=a[n][3])
        {

            punepunepune(a[n][3],n);
            punepunepune(a[n][2],n-1);

            n-=2;
        }
            else
        {
            punepunepune(a[n][2],n);
            n--;
        }
    }

    if(n==1)
        punepunepune(1,1);
    printf("%d\n",sol);

    for(int i=1;i<=m;i++)
        printf("%d ",v[i]);
    printf("\n");

    return 0;
}