Cod sursa(job #2970520)

Utilizator bem.andreiIceman bem.andrei Data 25 ianuarie 2023 13:54:55
Problema Sortare Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <bits/stdc++.h>

using namespace std;
ifstream r("sortare.in");
ofstream w("sortare.out");
int n, v[5005][3], maxim, solutie[5005];
void solve(int poz,int x)
{
    int i=0;
    while(poz)
    {
        if(solutie[i+1]==0)--poz;
        i++;
    }
    solutie[i]=x;
}
int main()
{
    r>>n;
    int m=n;
    for(int i=2; i<=n; ++i)
    {
        r>>v[i][0]>>v[i][1]>>v[i][2];
        sort(v[i],v[i]+3);
    }
    while(n>1)
    {
        maxim++;
        if(v[n][0]==v[n][1]||v[n][1]==v[n][2])
        {
            solve(v[n][1],n);
            n-=1;
        }
        else
        {
            solve(v[n][2],n);
            solve(v[n][1],n-1);
            n-=2;
        }
    }
    if(n==1)
    {
        solve(1,1);
    }
    w<<maxim+1<<"\n";
    for(int i=1; i<=m; ++i)
    {
        w<<solutie[i]<<" ";
    }
    return 0;
}