Advertisement
candale

Lant maxim

Mar 31st, 2011
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.94 KB | None | 0 0
  1. #include<fstream>
  2. using namespace std;
  3. ifstream fin ("prog.in");
  4. ofstream fout ("prog.out");
  5. int n;
  6. int t[100],a[100][100],l[100];
  7. struct q
  8. {
  9. int val, sf, i, t[100];
  10. }maxx,maxx1;
  11. int ok;
  12. void citire()
  13. {
  14. int i=1;
  15. while(fin>>t[i])
  16. {
  17. a[i][t[i]]=1;
  18. a[t[i]][i]=1;
  19. l[t[i]]++;i++;
  20. }
  21. n=i;
  22. }
  23. void df(int nd, int k,int p)
  24. {
  25. for(int i=1;i<n;i++)
  26. if(a[nd][i]==1&&i!=p)
  27. {
  28. t[i]=nd;
  29. df(i,k+1,nd);
  30. }
  31. if(maxx.val<k)
  32. { maxx.val=k;maxx.sf=nd;ok=1;}
  33. }
  34. void afisare(int nd)
  35. {
  36. if(nd!=0)
  37. afisare(maxx.t[nd]);
  38. fout<<nd<<' ';
  39. }
  40. int main ()
  41. {
  42. citire();
  43. for(int i=1;i<n;i++)
  44. {
  45. if(l[i]==0)
  46. {
  47. ok=0;
  48. t[i]=0;
  49. df(i, 1,0);
  50. if(ok==1)
  51. {
  52. maxx.i=i;
  53. for(int j=1;j<=n;j++)
  54. maxx.t[j]=t[j];
  55. }
  56. }
  57. if(t[i]==0)
  58. {
  59. ok=0;
  60. df(i,1,0);
  61. if(ok==1)
  62. {
  63. maxx.i=i;
  64. for(int j=1;j<=n;j++)
  65. maxx.t[j]=t[j];
  66. }
  67. }
  68.  
  69. }
  70. afisare(maxx.sf);
  71. return 0;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement