Advertisement
PopaLepo

Problema clasica cicluri BKT / lanturi BKT

Dec 14th, 2016
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.32 KB | None | 0 0
  1. CICLURI
  2.  
  3. #include <iostream>
  4. #include <fstream>
  5. using namespace std;
  6. int a[100][100],n,C[100],cy;
  7. ifstream f("ciclu.in");
  8. using namespace std;
  9. void citire()
  10. {
  11. f >> n;
  12. for(int i=1;i<=n;i++)
  13. for(int j=1;j<=n;j++)
  14. f >> a[i][j];
  15. f >> cy;
  16. for(int i=1;i<=cy;i++)
  17. f >> C[i];
  18. }
  19. int verif()
  20. {
  21. for(int i=1;i<=cy-2;i++)
  22. for(int j=i+1;j<=cy;j++)
  23. if(C[i]==C[j]&&C[i+1]==C[j+1]||C[i]==C[j+1]&&C[i+1]==C[j])
  24. return 0;
  25. for(int i=1;i<cy;i++)
  26. if(a[C[i]][C[i+1]]!=1)
  27. return 0;
  28. if(C[1]!=C[cy])
  29. return 0;
  30. return 1;
  31. }
  32. int verif_ciclu_elementar()
  33. {
  34. for(int i=1;i<cy;i++)
  35. for(int j=i+1;j<cy;j++)
  36. if(C[i]==C[j])
  37. return 0;
  38. return 1;
  39. }
  40. int main()
  41. {
  42. citire();
  43. if(verif())
  44. {
  45. cout << "Ciclu";
  46. if(verif_ciclu_elementar())
  47. cout << " elementar";
  48. }
  49. else
  50. cout << "Nu ciclu";
  51. }
  52.  
  53. LANTURI
  54.  
  55. #include <iostream>
  56. #include <fstream>
  57. using namespace std;
  58. int a[100][100],n,L[100],ch;
  59. ifstream f("lant.in");
  60. void citire()
  61. {
  62. f >> n;
  63. for(int i=1;i<=n;i++)
  64. for(int j=1;j<=n;j++)
  65. f >> a[i][j];
  66. f >> ch;
  67. for(int i=1;i<=ch;i++)
  68. f >> L[i];
  69. }
  70. int verif_lantz()
  71. {
  72. for(int i=1;i<ch;i++)
  73. if(a[L[i]][L[i+1]]!=1)
  74. return 0;
  75. return 1;
  76. }
  77. int verif_lantz_elem()
  78. {
  79. for(int i=1;i<ch;i++)
  80. if(a[L[i]][L[i+1]]!=1)
  81. return 0;
  82. for(int i=1;i<ch;i++)
  83. for(int j=i+1;j<=ch;j++)
  84. if(L[i]==L[j])
  85. return 0;
  86. return 1;
  87. }
  88. int verif_lantz_simplu()
  89. {
  90. for(int i=1;i<ch;i++)
  91. if(a[L[i]][L[i+1]]!=1)
  92. return 0;
  93. for(int i=1;i<=ch-2;i++)
  94. if((L[i]==L[ch-1]&&L[i+1]==L[ch])||(L[i+1]==L[ch-1]&&L[i]==L[ch]))
  95. return 0;
  96. return 1;
  97. }
  98. int main()
  99. {
  100. citire();
  101. if(verif_lantz())
  102. cout << "Este lantz"<<endl;
  103. else
  104. cout << "Nu este lantz"<<endl;
  105.  
  106. if(verif_lantz_elem())
  107. cout << "Este lantz elementar"<<endl;
  108. else
  109. cout << "Nu este lantz elementar"<<endl;
  110.  
  111. if(verif_lantz_simplu())
  112. cout << "Este lantz simplu"<<endl;
  113. else
  114. cout << "Nu este lantz simplu"<<endl;
  115.  
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement