candale icon

Lant maxim

candale | PRO | 03/31/11 12:29:32 PM UTC | 0 ⭐ | 262 👁️ | Never ⏰ | []
text |

940 B

|

None

|

0 👍

/

0 👎

#include<fstream>
using namespace std;
ifstream fin ("prog.in");
ofstream fout ("prog.out");
int n;
int t[100],a[100][100],l[100];
struct q
{
	int val, sf, i, t[100];
}maxx,maxx1;
int ok;
void citire()
{
	int i=1;
	while(fin>>t[i])
	{
		a[i][t[i]]=1;
		a[t[i]][i]=1;
		l[t[i]]++;i++;
	}
	n=i;
}
void df(int nd, int k,int p)
{
	for(int i=1;i<n;i++)
		if(a[nd][i]==1&&i!=p)
		{
			t[i]=nd;
			df(i,k+1,nd);
		}
	if(maxx.val<k)
	{	maxx.val=k;maxx.sf=nd;ok=1;}
}
void afisare(int nd)
{
	if(nd!=0)
		afisare(maxx.t[nd]);
	fout<<nd<<' ';
}
int main ()
{
	citire();
	for(int i=1;i<n;i++)
	{
		if(l[i]==0)
		{
			ok=0;
			t[i]=0;
			df(i, 1,0);
			if(ok==1)
			{
				maxx.i=i;
				for(int j=1;j<=n;j++)
					maxx.t[j]=t[j];
			}
		}
		if(t[i]==0)
		{
			ok=0;
			df(i,1,0);
			if(ok==1)
			{
				maxx.i=i;
				for(int j=1;j<=n;j++)
					maxx.t[j]=t[j];
			}
		}
 	}
	afisare(maxx.sf);
	return 0;
}

Comments