Pagini recente » Cod sursa (job #2469680) | Cod sursa (job #646211) | Cod sursa (job #1366336) | Cod sursa (job #1940627) | Cod sursa (job #3202864)
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
ifstream fin("nivelebin.in");
ofstream fout("nivelebin.out");
int n,st[1001],dr[1001],val[1001],tata[1001],maxim;
int nrnivele[1001],i;
void preordine(int nod,int niv)
{
nrnivele[niv]++;
if(niv>maxim)
maxim=niv;
if(st[nod]!=0)
preordine(st[nod],niv+1);
if(dr[nod]!=0)
preordine(dr[nod],niv+1);
}
int main()
{
fin>>n;
for(i=1; i<=n; i++)
{
fin>>val[i]>>st[i]>>dr[i];
tata[st[i]]=tata[dr[i]]=1;
}
int rad=0;
for(i=1; i<=n; i++)
{
if(tata[i]==0)
{
rad=i;
break;
}
}
preordine(rad,1);
fout<<maxim<<endl;///maxim este nr de nivele; valoareamaxima luata de niv
for(i=1; i<=maxim; i++)
fout<<nrnivele[i]<<" ";
return 0;
}