fork download
  1. // Damian Kakol 184890 i Krzysztof Dymanowski 184836 ACiR 3 IDE: Microsoft Visual Studio / JetBrains Clion
  2. #include <iostream>
  3. #include <iomanip>
  4. #include <ctime>
  5. #include <cstdlib>
  6.  
  7. using namespace std;
  8.  
  9. const int Wymiar8 = 8;
  10. const int Wymiar4 = 4;
  11. const int Wymiar40 = 40;
  12. const int Wymiar20 = 20;
  13.  
  14. #define BialePole char(219)
  15. #define CzarnePole char(255)
  16. #define Robocik char(167)
  17.  
  18.  
  19. struct Wierzcholek {
  20. Wierzcholek* next;
  21. int numerwierzcholka;
  22. };
  23.  
  24. void GenerujMacierzSegmentow(char MacierzSegmentow[Wymiar8][Wymiar4]);
  25. void WypiszMacierz(char MacierzSegmentow[Wymiar8][Wymiar4]);
  26. void StworzMacierzPlanszy(char MacierzSegmentow[Wymiar8][Wymiar4], int MacierzGrafu[Wymiar40][Wymiar20]);
  27. void DefinicjaSegmentu(char MacierzSegmentow[Wymiar8][Wymiar4], int MacierzGrafu[Wymiar40][Wymiar20], int w, int k);
  28. void WypelnienieSegmentu(int MacierzGrafu[Wymiar40][Wymiar20], int Segment, int w, int k);
  29. void UwtorzSasiada(int MacierzGrafu[Wymiar40][Wymiar20], Wierzcholek**& TablicaList, const char Kierunek, int row, int column);
  30. void InicjalizacjaListy(int MacierzGrafu[Wymiar40][Wymiar20], Wierzcholek**& TablicaList, bool*& visited);
  31. bool DFS(Wierzcholek**& TablicaList, bool*& visited, int startowy, int koncowy, int MacierzGrafu[Wymiar40][Wymiar20]);
  32.  
  33. void GenerujMacierzSegmentow(char MacierzSegmentow[Wymiar8][Wymiar4])
  34. {
  35. for (int i = 0; i < 8; i++)
  36. for (int j = 0; j < 4; j++)
  37. MacierzSegmentow[i][j] = char(rand() % 6 + 65);
  38. }
  39.  
  40. void WypiszMacierz(char MacierzSegmentow[Wymiar8][Wymiar4])
  41. {
  42. for (int i = 0; i < 8; i++)
  43. {
  44. for (int j = 0; j < 4; j++)
  45. {
  46. cout << setw(3) << MacierzSegmentow[i][j];
  47. }
  48. cout << "\n";
  49. }
  50. }
  51.  
  52. void StworzMacierzPlanszy(char MacierzSegmentow[Wymiar8][Wymiar4], int MacierzGrafu[Wymiar40][Wymiar20])
  53. {
  54. for (int w = 0; w < Wymiar8; w++)
  55. for (int k = 0; k < Wymiar4; k++)
  56. {
  57. DefinicjaSegmentu(MacierzSegmentow, MacierzGrafu, w, k);
  58. }
  59.  
  60. }
  61.  
  62. void DefinicjaSegmentu(char MacierzSegmentow[Wymiar8][Wymiar4], int MacierzGrafu[Wymiar40][Wymiar20], int w, int k)
  63. {
  64. int var = int((MacierzSegmentow[w][k]) - 64);
  65. switch (var)
  66. {
  67. case 1: WypelnienieSegmentu(MacierzGrafu, 1, w, k);
  68. break;
  69. case 2: WypelnienieSegmentu(MacierzGrafu, 2, w, k);
  70. break;
  71. case 3: WypelnienieSegmentu(MacierzGrafu, 3, w, k);
  72. break;
  73. case 4: WypelnienieSegmentu(MacierzGrafu, 4, w, k);
  74. break;
  75. case 5: WypelnienieSegmentu(MacierzGrafu, 5, w, k);
  76. break;
  77. case 6: WypelnienieSegmentu(MacierzGrafu, 6, w, k);
  78. break;
  79. }
  80. }
  81.  
  82. void WypelnienieSegmentu(int MacierzGrafu[Wymiar40][Wymiar20], int Segment, int w, int k)
  83. {
  84. int r = w;
  85. int c = k;
  86. switch (Segment)
  87. {
  88. case 1: {
  89. MacierzGrafu[r * 5][c * 5] = 0; MacierzGrafu[r * 5][(c * 5) + 1] = 0; MacierzGrafu[r * 5][(c * 5) + 2] = 1; MacierzGrafu[r * 5][(c * 5) + 3] = 0; MacierzGrafu[r * 5][(c * 5) + 4] = 0;
  90. MacierzGrafu[(r * 5) + 1][c * 5] = 0; MacierzGrafu[(r * 5) + 1][(c * 5) + 1] = 1; MacierzGrafu[(r * 5) + 1][(c * 5) + 2] = 1; MacierzGrafu[(r * 5) + 1][(c * 5) + 3] = 0; MacierzGrafu[(r * 5) + 1][(c * 5) + 4] = 0;
  91. MacierzGrafu[(r * 5) + 2][c * 5] = 1; MacierzGrafu[(r * 5) + 2][(c * 5) + 1] = 1; MacierzGrafu[(r * 5) + 2][(c * 5) + 2] = 0; MacierzGrafu[(r * 5) + 2][(c * 5) + 3] = 1; MacierzGrafu[(r * 5) + 2][(c * 5) + 4] = 1;
  92. MacierzGrafu[(r * 5) + 3][c * 5] = 0; MacierzGrafu[(r * 5) + 3][(c * 5) + 1] = 1; MacierzGrafu[(r * 5) + 3][(c * 5) + 2] = 1; MacierzGrafu[(r * 5) + 3][(c * 5) + 3] = 1; MacierzGrafu[(r * 5) + 3][(c * 5) + 4] = 0;
  93. MacierzGrafu[(r * 5) + 4][c * 5] = 0; MacierzGrafu[(r * 5) + 4][(c * 5) + 1] = 0; MacierzGrafu[(r * 5) + 4][(c * 5) + 2] = 1; MacierzGrafu[(r * 5) + 4][(c * 5) + 3] = 0; MacierzGrafu[(r * 5) + 4][(c * 5) + 4] = 0;
  94. break;
  95. }
  96. case 2: {
  97. MacierzGrafu[r * 5][c * 5] = 0; MacierzGrafu[r * 5][(c * 5) + 1] = 0; MacierzGrafu[r * 5][(c * 5) + 2] = 1; MacierzGrafu[r * 5][(c * 5) + 3] = 1; MacierzGrafu[r * 5][(c * 5) + 4] = 0;
  98. MacierzGrafu[(r * 5) + 1][c * 5] = 1; MacierzGrafu[(r * 5) + 1][(c * 5) + 1] = 0; MacierzGrafu[(r * 5) + 1][(c * 5) + 2] = 0; MacierzGrafu[(r * 5) + 1][(c * 5) + 3] = 1; MacierzGrafu[(r * 5) + 1][(c * 5) + 4] = 0;
  99. MacierzGrafu[(r * 5) + 2][c * 5] = 1; MacierzGrafu[(r * 5) + 2][(c * 5) + 1] = 1; MacierzGrafu[(r * 5) + 2][(c * 5) + 2] = 1; MacierzGrafu[(r * 5) + 2][(c * 5) + 3] = 1; MacierzGrafu[(r * 5) + 2][(c * 5) + 4] = 1;
  100. MacierzGrafu[(r * 5) + 3][c * 5] = 0; MacierzGrafu[(r * 5) + 3][(c * 5) + 1] = 1; MacierzGrafu[(r * 5) + 3][(c * 5) + 2] = 1; MacierzGrafu[(r * 5) + 3][(c * 5) + 3] = 1; MacierzGrafu[(r * 5) + 3][(c * 5) + 4] = 0;
  101. MacierzGrafu[(r * 5) + 4][c * 5] = 0; MacierzGrafu[(r * 5) + 4][(c * 5) + 1] = 0; MacierzGrafu[(r * 5) + 4][(c * 5) + 2] = 1; MacierzGrafu[(r * 5) + 4][(c * 5) + 3] = 1; MacierzGrafu[(r * 5) + 4][(c * 5) + 4] = 0;
  102. break;
  103. }
  104. case 3: {
  105. MacierzGrafu[r * 5][c * 5] = 1; MacierzGrafu[r * 5][(c * 5) + 1] = 1; MacierzGrafu[r * 5][(c * 5) + 2] = 1; MacierzGrafu[r * 5][(c * 5) + 3] = 1; MacierzGrafu[r * 5][(c * 5) + 4] = 1;
  106. MacierzGrafu[(r * 5) + 1][c * 5] = 1; MacierzGrafu[(r * 5) + 1][(c * 5) + 1] = 1; MacierzGrafu[(r * 5) + 1][(c * 5) + 2] = 0; MacierzGrafu[(r * 5) + 1][(c * 5) + 3] = 1; MacierzGrafu[(r * 5) + 1][(c * 5) + 4] = 1;
  107. MacierzGrafu[(r * 5) + 2][c * 5] = 1; MacierzGrafu[(r * 5) + 2][(c * 5) + 1] = 1; MacierzGrafu[(r * 5) + 2][(c * 5) + 2] = 0; MacierzGrafu[(r * 5) + 2][(c * 5) + 3] = 0; MacierzGrafu[(r * 5) + 2][(c * 5) + 4] = 1;
  108. MacierzGrafu[(r * 5) + 3][c * 5] = 0; MacierzGrafu[(r * 5) + 3][(c * 5) + 1] = 1; MacierzGrafu[(r * 5) + 3][(c * 5) + 2] = 0; MacierzGrafu[(r * 5) + 3][(c * 5) + 3] = 0; MacierzGrafu[(r * 5) + 3][(c * 5) + 4] = 0;
  109. MacierzGrafu[(r * 5) + 4][c * 5] = 0; MacierzGrafu[(r * 5) + 4][(c * 5) + 1] = 1; MacierzGrafu[(r * 5) + 4][(c * 5) + 2] = 1; MacierzGrafu[(r * 5) + 4][(c * 5) + 3] = 1; MacierzGrafu[(r * 5) + 4][(c * 5) + 4] = 1;
  110. break;
  111. }
  112. case 4: {
  113. MacierzGrafu[r * 5][c * 5] = 0; MacierzGrafu[r * 5][(c * 5) + 1] = 0; MacierzGrafu[r * 5][(c * 5) + 2] = 1; MacierzGrafu[r * 5][(c * 5) + 3] = 1; MacierzGrafu[r * 5][(c * 5) + 4] = 1;
  114. MacierzGrafu[(r * 5) + 1][c * 5] = 0; MacierzGrafu[(r * 5) + 1][(c * 5) + 1] = 1; MacierzGrafu[(r * 5) + 1][(c * 5) + 2] = 1; MacierzGrafu[(r * 5) + 1][(c * 5) + 3] = 0; MacierzGrafu[(r * 5) + 1][(c * 5) + 4] = 1;
  115. MacierzGrafu[(r * 5) + 2][c * 5] = 1; MacierzGrafu[(r * 5) + 2][(c * 5) + 1] = 1; MacierzGrafu[(r * 5) + 2][(c * 5) + 2] = 0; MacierzGrafu[(r * 5) + 2][(c * 5) + 3] = 1; MacierzGrafu[(r * 5) + 2][(c * 5) + 4] = 1;
  116. MacierzGrafu[(r * 5) + 3][c * 5] = 1; MacierzGrafu[(r * 5) + 3][(c * 5) + 1] = 0; MacierzGrafu[(r * 5) + 3][(c * 5) + 2] = 1; MacierzGrafu[(r * 5) + 3][(c * 5) + 3] = 1; MacierzGrafu[(r * 5) + 3][(c * 5) + 4] = 0;
  117. MacierzGrafu[(r * 5) + 4][c * 5] = 0; MacierzGrafu[(r * 5) + 4][(c * 5) + 1] = 1; MacierzGrafu[(r * 5) + 4][(c * 5) + 2] = 1; MacierzGrafu[(r * 5) + 4][(c * 5) + 3] = 0; MacierzGrafu[(r * 5) + 4][(c * 5) + 4] = 0;
  118. break;
  119. }
  120. case 5: {
  121. MacierzGrafu[r * 5][c * 5] = 1; MacierzGrafu[r * 5][(c * 5) + 1] = 1; MacierzGrafu[r * 5][(c * 5) + 2] = 1; MacierzGrafu[r * 5][(c * 5) + 3] = 0; MacierzGrafu[r * 5][(c * 5) + 4] = 0;
  122. MacierzGrafu[(r * 5) + 1][c * 5] = 0; MacierzGrafu[(r * 5) + 1][(c * 5) + 1] = 1; MacierzGrafu[(r * 5) + 1][(c * 5) + 2] = 1; MacierzGrafu[(r * 5) + 1][(c * 5) + 3] = 1; MacierzGrafu[(r * 5) + 1][(c * 5) + 4] = 0;
  123. MacierzGrafu[(r * 5) + 2][c * 5] = 1; MacierzGrafu[(r * 5) + 2][(c * 5) + 1] = 1; MacierzGrafu[(r * 5) + 2][(c * 5) + 2] = 0; MacierzGrafu[(r * 5) + 2][(c * 5) + 3] = 1; MacierzGrafu[(r * 5) + 2][(c * 5) + 4] = 1;
  124. MacierzGrafu[(r * 5) + 3][c * 5] = 1; MacierzGrafu[(r * 5) + 3][(c * 5) + 1] = 1; MacierzGrafu[(r * 5) + 3][(c * 5) + 2] = 0; MacierzGrafu[(r * 5) + 3][(c * 5) + 3] = 1; MacierzGrafu[(r * 5) + 3][(c * 5) + 4] = 1;
  125. MacierzGrafu[(r * 5) + 4][c * 5] = 1; MacierzGrafu[(r * 5) + 4][(c * 5) + 1] = 1; MacierzGrafu[(r * 5) + 4][(c * 5) + 2] = 1; MacierzGrafu[(r * 5) + 4][(c * 5) + 3] = 1; MacierzGrafu[(r * 5) + 4][(c * 5) + 4] = 0;
  126. break;
  127. }
  128. case 6: {
  129. MacierzGrafu[r * 5][c * 5] = 0; MacierzGrafu[r * 5][(c * 5) + 1] = 0; MacierzGrafu[r * 5][(c * 5) + 2] = 1; MacierzGrafu[r * 5][(c * 5) + 3] = 0; MacierzGrafu[r * 5][(c * 5) + 4] = 0;
  130. MacierzGrafu[(r * 5) + 1][c * 5] = 0; MacierzGrafu[(r * 5) + 1][(c * 5) + 1] = 0; MacierzGrafu[(r * 5) + 1][(c * 5) + 2] = 1; MacierzGrafu[(r * 5) + 1][(c * 5) + 3] = 0; MacierzGrafu[(r * 5) + 1][(c * 5) + 4] = 0;
  131. MacierzGrafu[(r * 5) + 2][c * 5] = 1; MacierzGrafu[(r * 5) + 2][(c * 5) + 1] = 1; MacierzGrafu[(r * 5) + 2][(c * 5) + 2] = 1; MacierzGrafu[(r * 5) + 2][(c * 5) + 3] = 1; MacierzGrafu[(r * 5) + 2][(c * 5) + 4] = 1;
  132. MacierzGrafu[(r * 5) + 3][c * 5] = 0; MacierzGrafu[(r * 5) + 3][(c * 5) + 1] = 0; MacierzGrafu[(r * 5) + 3][(c * 5) + 2] = 1; MacierzGrafu[(r * 5) + 3][(c * 5) + 3] = 0; MacierzGrafu[(r * 5) + 3][(c * 5) + 4] = 0;
  133. MacierzGrafu[(r * 5) + 4][c * 5] = 0; MacierzGrafu[(r * 5) + 4][(c * 5) + 1] = 0; MacierzGrafu[(r * 5) + 4][(c * 5) + 2] = 1; MacierzGrafu[(r * 5) + 4][(c * 5) + 3] = 0; MacierzGrafu[(r * 5) + 4][(c * 5) + 4] = 0;
  134. break;
  135. }
  136. }
  137. }
  138.  
  139. void InicjalizacjaListy(int MacierzGrafu[Wymiar40][Wymiar20], Wierzcholek **& TablicaList,bool*& visited)
  140. {
  141. TablicaList = new Wierzcholek * [Wymiar40 * Wymiar20];
  142. visited = new bool[Wymiar40 * Wymiar20];
  143. Wierzcholek* p;
  144. char dol = 'D', gora = 'G', lewo = 'L', prawo = 'P';
  145. for (int i = 0; i < Wymiar40 * Wymiar20; i++)
  146. {
  147. TablicaList[i] = NULL;
  148. visited[i] = false;
  149. }
  150.  
  151. for (int i = 0; i < Wymiar40; i++)
  152. for (int j = 0; j < Wymiar20; j++)
  153. {
  154. if (MacierzGrafu[i][j] == 0) continue; // Gora,lewo,prawo,dol
  155. if (i == 0)
  156. {
  157. if (j == 0)
  158. {
  159. UwtorzSasiada(MacierzGrafu, TablicaList, prawo, i, j);
  160. UwtorzSasiada(MacierzGrafu, TablicaList, dol, i, j);
  161. }
  162. else if (j == Wymiar40 - 1)
  163. {
  164. UwtorzSasiada(MacierzGrafu, TablicaList, lewo, i, j);
  165. UwtorzSasiada(MacierzGrafu, TablicaList, dol, i, j);
  166. }
  167. else
  168. {
  169. UwtorzSasiada(MacierzGrafu, TablicaList, lewo, i, j);
  170. UwtorzSasiada(MacierzGrafu, TablicaList, prawo, i, j);
  171. UwtorzSasiada(MacierzGrafu, TablicaList, dol, i, j);
  172. }
  173. }
  174. else if (j == 0)
  175. {
  176. if (i == Wymiar40 - 1)
  177. {
  178. UwtorzSasiada(MacierzGrafu, TablicaList, gora, i, j);
  179. UwtorzSasiada(MacierzGrafu, TablicaList, prawo, i, j);
  180. }
  181. else
  182. {
  183. UwtorzSasiada(MacierzGrafu, TablicaList, gora, i, j);
  184. UwtorzSasiada(MacierzGrafu, TablicaList, prawo, i, j);
  185. UwtorzSasiada(MacierzGrafu, TablicaList, dol, i, j);
  186. }
  187. }
  188. else if (i == Wymiar40 - 1)
  189. {
  190. if (j == Wymiar40 - 1)
  191. {
  192. UwtorzSasiada(MacierzGrafu, TablicaList, gora, i, j);
  193. UwtorzSasiada(MacierzGrafu, TablicaList, lewo, i, j);
  194. }
  195. else
  196. {
  197. UwtorzSasiada(MacierzGrafu, TablicaList, gora, i, j);
  198. UwtorzSasiada(MacierzGrafu, TablicaList, lewo, i, j);
  199. UwtorzSasiada(MacierzGrafu, TablicaList, prawo, i, j);
  200. }
  201. }
  202. else if (j == Wymiar40 - 1)
  203. {
  204. UwtorzSasiada(MacierzGrafu, TablicaList, gora, i, j);
  205. UwtorzSasiada(MacierzGrafu, TablicaList, lewo, i, j);
  206. UwtorzSasiada(MacierzGrafu, TablicaList, dol, i, j);
  207. }
  208. else
  209. {
  210. UwtorzSasiada(MacierzGrafu, TablicaList, gora, i, j);
  211. UwtorzSasiada(MacierzGrafu, TablicaList, lewo, i, j);
  212. UwtorzSasiada(MacierzGrafu, TablicaList, prawo, i, j);
  213. UwtorzSasiada(MacierzGrafu, TablicaList, dol, i, j);
  214.  
  215. }
  216. /*cin >> v1 >> v2; // wierzcholek poczatkowy i koncowy
  217. p = new Wierzcholek;
  218. p->wartosc = v2;
  219. p->next = TablicaList[v1];
  220. TablicaList[v1] = p;*/
  221. }
  222. };
  223.  
  224. void UwtorzSasiada(int MacierzGrafu[Wymiar40][Wymiar20], Wierzcholek **& TablicaList,const char Kierunek, int row, int column) // 68-D(1) 71-G(4) 76-L(9) 80-P(13)
  225. {
  226. Wierzcholek* p;
  227. int variable = int(Kierunek) - 67;
  228. switch (variable)
  229. {
  230. case 1: {
  231. if (MacierzGrafu[row + 1][column] == 1)
  232. {
  233. p = new Wierzcholek;
  234. p->numerwierzcholka = (((row + 1) * Wymiar20) + column);
  235. p->next = TablicaList[(row * Wymiar20) + column];
  236. TablicaList[(row * Wymiar20) + column] = p;
  237. }
  238. }break;
  239. case 4: {
  240. if (MacierzGrafu[row - 1][column] == 1)
  241. {
  242. p = new Wierzcholek;
  243. p->numerwierzcholka = (((row - 1) * Wymiar20) + column);
  244. p->next = TablicaList[(row * Wymiar20) + column];
  245. TablicaList[(row * Wymiar20) + column] = p;
  246. }
  247. }break;
  248. case 9: {
  249. if (MacierzGrafu[row][column - 1] == 1)
  250. {
  251. p = new Wierzcholek;
  252. p->numerwierzcholka = ((row * Wymiar20) + column - 1);
  253. p->next = TablicaList[(row * Wymiar20) + column];
  254. TablicaList[(row * Wymiar20) + column] = p;
  255. }
  256. }break;
  257. case 13: {
  258. if (MacierzGrafu[row][column + 1] == 1)
  259. {
  260. p = new Wierzcholek;
  261. p->numerwierzcholka = ((row * Wymiar20) + column + 1);
  262. p->next = TablicaList[(row * Wymiar20) + column];
  263. TablicaList[(row * Wymiar20) + column] = p;
  264. }
  265. }break;
  266. }
  267. }
  268.  
  269. void WypiszWierzcholki(Wierzcholek **& TablicaList)
  270. {
  271. Wierzcholek* p;
  272. for (int i = 0; i < Wymiar40 * Wymiar20; i++)
  273. {
  274. cout << "Lista [ " << i << " ] =";
  275. p = TablicaList[i];
  276. while (p)
  277. {
  278. cout << setw(5) << p->numerwierzcholka;
  279. p = p->next;
  280. }
  281. cout << endl;
  282. }
  283. }
  284.  
  285. void UsunGraf(Wierzcholek**& TablicaList, bool*& visited)
  286. {
  287. Wierzcholek* p, * r;
  288. for (int i = 0; i < Wymiar40 * Wymiar20; i++)
  289. {
  290. p = TablicaList[i];
  291. while (p)
  292. {
  293. r = p;
  294. p = p->next;
  295. delete r;
  296. }
  297. }
  298.  
  299. delete[] TablicaList;
  300. delete[] visited;
  301. }
  302.  
  303. bool DFS(Wierzcholek**& TablicaList, bool*& visited, int startowy, int koncowy, int MacierzGrafu[Wymiar40][Wymiar20])
  304.  
  305. {
  306. Wierzcholek* p;
  307. visited[startowy] = true;
  308.  
  309. cout << setw(3) << startowy << "->";
  310.  
  311. // if (startowy == koncowy)
  312. // {
  313. // cout << koncowy << setw(5) << "funkcja znalazla droge";
  314. // return true;
  315. //}
  316. for (p = TablicaList[startowy]; p; p = p->next)
  317. {
  318. MacierzGrafu[startowy / 20][startowy % 20] = 2;
  319. if (!visited[p->numerwierzcholka] && DFS(TablicaList, visited, p->numerwierzcholka, koncowy, MacierzGrafu));
  320. return true;
  321. }
  322. return false;
  323. }
  324.  
  325. void Initialize()
  326. {
  327.  
  328. }
  329.  
  330. int main()
  331. {
  332. Wierzcholek* p;
  333. Wierzcholek* r;
  334. bool* visited;
  335. int* SciezkaRobota = new int[Wymiar40 * Wymiar20];
  336. int R1, C1, R2, C2;
  337.  
  338. char Macierz[Wymiar8][Wymiar4];
  339. int MacierzGrafu[Wymiar40][Wymiar20];
  340. srand(time(NULL));
  341.  
  342. GenerujMacierzSegmentow(Macierz);
  343.  
  344. WypiszMacierz(Macierz);
  345.  
  346. StworzMacierzPlanszy(Macierz, MacierzGrafu);
  347.  
  348. for (int g = 0; g < Wymiar40; g++)
  349. {
  350. for (int z = 0; z < Wymiar20; z++)
  351. if (MacierzGrafu[g][z])
  352. cout << BialePole;
  353. else cout << CzarnePole;
  354. cout << "\n";
  355. }
  356. Wierzcholek** TablicaList;
  357.  
  358. InicjalizacjaListy(MacierzGrafu, TablicaList, visited);
  359. /*
  360. * {
  361. cin >> v1 >> v2; // wierzcholek poczatkowy i koncowy
  362. p = new Wierzcholek;
  363. p->wartosc = v2;
  364. p->next = TablicaList[v1];
  365. TablicaList[v1] = p;
  366. }
  367. */
  368. WypiszWierzcholki(TablicaList);
  369.  
  370.  
  371. do{
  372. R1 = rand() % Wymiar40;
  373. C1 = rand() % Wymiar20;
  374. } while (!MacierzGrafu[R1][C1]);
  375.  
  376. do{
  377. R2 = rand() % Wymiar40;
  378. C2 = rand() % Wymiar20;
  379. } while (!MacierzGrafu[R2][C2] && (R2 != R1) && (C2 != C1));
  380.  
  381. int LosowyWierzcholek = (R1 * Wymiar20) + C1;
  382.  
  383. int KoncowyWierzcholek = (R2 * Wymiar20) + C2;
  384. cout << LosowyWierzcholek << setw(5) << KoncowyWierzcholek << "\n";
  385.  
  386. bool result = DFS(TablicaList, visited, LosowyWierzcholek, KoncowyWierzcholek, MacierzGrafu);
  387. cout << "result: " << result;
  388.  
  389. cout << endl << endl << endl;
  390.  
  391. for (int g = 0; g < Wymiar40; g++)
  392. {
  393.  
  394. for (int z = 0; z < Wymiar20; z++) {
  395. if (g == R1 && z == C1) {
  396. cout << "A";
  397. }
  398. else if (g == R2 && z == C2) {
  399. cout << "R";
  400. }
  401. else if (MacierzGrafu[g][z] == 1) {
  402. cout << BialePole;
  403. }
  404. else if (MacierzGrafu[g][z] == 2) {
  405. cout << "+";
  406. }
  407. else {
  408. cout << CzarnePole;
  409. }
  410.  
  411. //cout << setw(5) << (g*Wymiar20)+z;
  412. }
  413. cout << "\n";
  414.  
  415. }
  416.  
  417. UsunGraf(TablicaList, visited);
  418.  
  419. return 0;
  420. }
Success #stdin #stdout 0s 4652KB
stdin
Standard input is empty
stdout
  F  C  F  A
  C  F  E  A
  A  C  B  C
  F  F  B  B
  A  A  C  F
  F  E  E  F
  F  F  F  B
  F  F  E  E
����������������
���������������
������������������
����������������
����������������
����������������
���������������
�����������������
���������������
����������������
�����������������
���������������
�����������������
����������������
�����������������
����������������
��������������
��������������������
����������������
����������������
����������������
���������������
�����������������
����������������
����������������
����������������
����������������
������������������
���������������
����������������
����������������
���������������
��������������������
����������������
����������������
����������������
����������������
������������������
����������������
����������������
Lista [ 0 ] =
Lista [ 1 ] =
Lista [ 2 ] =   22
Lista [ 3 ] =
Lista [ 4 ] =
Lista [ 5 ] =   25    6
Lista [ 6 ] =   26    7    5
Lista [ 7 ] =    8    6
Lista [ 8 ] =   28    9    7
Lista [ 9 ] =   29    8
Lista [ 10 ] =
Lista [ 11 ] =
Lista [ 12 ] =   32
Lista [ 13 ] =
Lista [ 14 ] =
Lista [ 15 ] =
Lista [ 16 ] =
Lista [ 17 ] =   37
Lista [ 18 ] =
Lista [ 19 ] =
Lista [ 20 ] =
Lista [ 21 ] =
Lista [ 22 ] =   42    2
Lista [ 23 ] =
Lista [ 24 ] =
Lista [ 25 ] =   45   26    5
Lista [ 26 ] =   46   25    6
Lista [ 27 ] =
Lista [ 28 ] =   29    8
Lista [ 29 ] =   49   28    9
Lista [ 30 ] =
Lista [ 31 ] =
Lista [ 32 ] =   52   12
Lista [ 33 ] =
Lista [ 34 ] =
Lista [ 35 ] =
Lista [ 36 ] =   56   37
Lista [ 37 ] =   36   17
Lista [ 38 ] =
Lista [ 39 ] =
Lista [ 40 ] =   41
Lista [ 41 ] =   42   40
Lista [ 42 ] =   62   43   41   22
Lista [ 43 ] =   44   42
Lista [ 44 ] =   45   43
Lista [ 45 ] =   46   44   25
Lista [ 46 ] =   66   45   26
Lista [ 47 ] =
Lista [ 48 ] =
Lista [ 49 ] =   50   29
Lista [ 50 ] =   51   49
Lista [ 51 ] =   52   50
Lista [ 52 ] =   72   53   51   32
Lista [ 53 ] =   54   52
Lista [ 54 ] =   55   53
Lista [ 55 ] =   56   54
Lista [ 56 ] =   76   55   36
Lista [ 57 ] =
Lista [ 58 ] =   78   59
Lista [ 59 ] =   58
Lista [ 60 ] =
Lista [ 61 ] =
Lista [ 62 ] =   82   42
Lista [ 63 ] =
Lista [ 64 ] =
Lista [ 65 ] =
Lista [ 66 ] =   86   46
Lista [ 67 ] =
Lista [ 68 ] =
Lista [ 69 ] =
Lista [ 70 ] =
Lista [ 71 ] =
Lista [ 72 ] =   92   52
Lista [ 73 ] =
Lista [ 74 ] =
Lista [ 75 ] =
Lista [ 76 ] =   77   56
Lista [ 77 ] =   97   78   76
Lista [ 78 ] =   77   58
Lista [ 79 ] =
Lista [ 80 ] =
Lista [ 81 ] =
Lista [ 82 ] =  102   62
Lista [ 83 ] =
Lista [ 84 ] =
Lista [ 85 ] =
Lista [ 86 ] =   87   66
Lista [ 87 ] =  107   88   86
Lista [ 88 ] =   89   87
Lista [ 89 ] =   88
Lista [ 90 ] =
Lista [ 91 ] =
Lista [ 92 ] =  112   72
Lista [ 93 ] =
Lista [ 94 ] =
Lista [ 95 ] =
Lista [ 96 ] =
Lista [ 97 ] =  117   77
Lista [ 98 ] =
Lista [ 99 ] =
Lista [ 100 ] =  120  101
Lista [ 101 ] =  121  102  100
Lista [ 102 ] =  103  101   82
Lista [ 103 ] =  123  104  102
Lista [ 104 ] =  124  103
Lista [ 105 ] =
Lista [ 106 ] =
Lista [ 107 ] =  127   87
Lista [ 108 ] =
Lista [ 109 ] =
Lista [ 110 ] =  111
Lista [ 111 ] =  131  112  110
Lista [ 112 ] =  132  111   92
Lista [ 113 ] =
Lista [ 114 ] =
Lista [ 115 ] =
Lista [ 116 ] =
Lista [ 117 ] =  137   97
Lista [ 118 ] =
Lista [ 119 ] =
Lista [ 120 ] =  140  121  100
Lista [ 121 ] =  141  120  101
Lista [ 122 ] =
Lista [ 123 ] =  124  103
Lista [ 124 ] =  144  123  104
Lista [ 125 ] =
Lista [ 126 ] =
Lista [ 127 ] =  147  107
Lista [ 128 ] =
Lista [ 129 ] =
Lista [ 130 ] =
Lista [ 131 ] =  151  132  111
Lista [ 132 ] =  133  131  112
Lista [ 133 ] =  153  132
Lista [ 134 ] =
Lista [ 135 ] =
Lista [ 136 ] =  156  137
Lista [ 137 ] =  136  117
Lista [ 138 ] =
Lista [ 139 ] =
Lista [ 140 ] =  141  120
Lista [ 141 ] =  161  140  121
Lista [ 142 ] =
Lista [ 143 ] =
Lista [ 144 ] =  145  124
Lista [ 145 ] =  146  144
Lista [ 146 ] =  147  145
Lista [ 147 ] =  167  148  146  127
Lista [ 148 ] =  149  147
Lista [ 149 ] =  150  148
Lista [ 150 ] =  170  151  149
Lista [ 151 ] =  171  150  131
Lista [ 152 ] =
Lista [ 153 ] =  173  154  133
Lista [ 154 ] =  174  155  153
Lista [ 155 ] =  156  154
Lista [ 156 ] =  176  155  136
Lista [ 157 ] =
Lista [ 158 ] =  178  159
Lista [ 159 ] =  158
Lista [ 160 ] =
Lista [ 161 ] =  181  141
Lista [ 162 ] =
Lista [ 163 ] =
Lista [ 164 ] =
Lista [ 165 ] =
Lista [ 166 ] =
Lista [ 167 ] =  187  147
Lista [ 168 ] =
Lista [ 169 ] =
Lista [ 170 ] =  190  171  150
Lista [ 171 ] =  191  170  151
Lista [ 172 ] =
Lista [ 173 ] =  193  174  153
Lista [ 174 ] =  173  154
Lista [ 175 ] =
Lista [ 176 ] =  177  156
Lista [ 177 ] =  197  178  176
Lista [ 178 ] =  177  158
Lista [ 179 ] =
Lista [ 180 ] =
Lista [ 181 ] =  182  161
Lista [ 182 ] =  202  183  181
Lista [ 183 ] =  184  182
Lista [ 184 ] =  183
Lista [ 185 ] =
Lista [ 186 ] =
Lista [ 187 ] =  207  167
Lista [ 188 ] =
Lista [ 189 ] =
Lista [ 190 ] =  191  170
Lista [ 191 ] =  192  190  171
Lista [ 192 ] =  212  193  191
Lista [ 193 ] =  213  192  173
Lista [ 194 ] =
Lista [ 195 ] =
Lista [ 196 ] =
Lista [ 197 ] =  217  177
Lista [ 198 ] =
Lista [ 199 ] =
Lista [ 200 ] =
Lista [ 201 ] =
Lista [ 202 ] =  222  182
Lista [ 203 ] =
Lista [ 204 ] =
Lista [ 205 ] =  225  206
Lista [ 206 ] =  226  207  205
Lista [ 207 ] =  208  206  187
Lista [ 208 ] =  228  209  207
Lista [ 209 ] =  229  208
Lista [ 210 ] =
Lista [ 211 ] =
Lista [ 212 ] =  213  192
Lista [ 213 ] =  233  212  193
Lista [ 214 ] =
Lista [ 215 ] =  235  216
Lista [ 216 ] =  236  217  215
Lista [ 217 ] =  218  216  197
Lista [ 218 ] =  238  219  217
Lista [ 219 ] =  239  218
Lista [ 220 ] =
Lista [ 221 ] =  241  222
Lista [ 222 ] =  221  202
Lista [ 223 ] =
Lista [ 224 ] =
Lista [ 225 ] =  245  226  205
Lista [ 226 ] =  246  225  206
Lista [ 227 ] =
Lista [ 228 ] =  229  208
Lista [ 229 ] =  249  230  228  209
Lista [ 230 ] =  250  229
Lista [ 231 ] =
Lista [ 232 ] =
Lista [ 233 ] =  253  213
Lista [ 234 ] =
Lista [ 235 ] =  255  236  215
Lista [ 236 ] =  256  235  216
Lista [ 237 ] =
Lista [ 238 ] =  239  218
Lista [ 239 ] =  259  240  238  219
Lista [ 240 ] =  241
Lista [ 241 ] =  261  240  221
Lista [ 242 ] =
Lista [ 243 ] =  263  244
Lista [ 244 ] =  245  243
Lista [ 245 ] =  246  244  225
Lista [ 246 ] =  266  245  226
Lista [ 247 ] =
Lista [ 248 ] =
Lista [ 249 ] =  250  229
Lista [ 250 ] =  251  249  230
Lista [ 251 ] =  271  252  250
Lista [ 252 ] =  272  253  251
Lista [ 253 ] =  273  254  252  233
Lista [ 254 ] =  255  253
Lista [ 255 ] =  256  254  235
Lista [ 256 ] =  276  255  236
Lista [ 257 ] =
Lista [ 258 ] =
Lista [ 259 ] =  239
Lista [ 260 ] =
Lista [ 261 ] =  262  241
Lista [ 262 ] =  282  263  261
Lista [ 263 ] =  262  243
Lista [ 264 ] =
Lista [ 265 ] =
Lista [ 266 ] =  286  246
Lista [ 267 ] =
Lista [ 268 ] =
Lista [ 269 ] =
Lista [ 270 ] =
Lista [ 271 ] =  272  251
Lista [ 272 ] =  292  273  271  252
Lista [ 273 ] =  293  272  253
Lista [ 274 ] =
Lista [ 275 ] =
Lista [ 276 ] =  296  256
Lista [ 277 ] =
Lista [ 278 ] =
Lista [ 279 ] =
Lista [ 280 ] =
Lista [ 281 ] =
Lista [ 282 ] =  302  262
Lista [ 283 ] =
Lista [ 284 ] =
Lista [ 285 ] =
Lista [ 286 ] =  287  266
Lista [ 287 ] =  307  288  286
Lista [ 288 ] =  289  287
Lista [ 289 ] =  288
Lista [ 290 ] =
Lista [ 291 ] =
Lista [ 292 ] =  312  293  272
Lista [ 293 ] =  313  292  273
Lista [ 294 ] =
Lista [ 295 ] =
Lista [ 296 ] =  297  276
Lista [ 297 ] =  317  298  296
Lista [ 298 ] =  318  299  297
Lista [ 299 ] =  298
Lista [ 300 ] =
Lista [ 301 ] =
Lista [ 302 ] =  322  282
Lista [ 303 ] =
Lista [ 304 ] =
Lista [ 305 ] =
Lista [ 306 ] =
Lista [ 307 ] =  327  287
Lista [ 308 ] =
Lista [ 309 ] =
Lista [ 310 ] =
Lista [ 311 ] =
Lista [ 312 ] =  313  292
Lista [ 313 ] =  333  312  293
Lista [ 314 ] =
Lista [ 315 ] =
Lista [ 316 ] =
Lista [ 317 ] =  318  297
Lista [ 318 ] =  338  317  298
Lista [ 319 ] =
Lista [ 320 ] =
Lista [ 321 ] =
Lista [ 322 ] =  342  302
Lista [ 323 ] =
Lista [ 324 ] =
Lista [ 325 ] =
Lista [ 326 ] =
Lista [ 327 ] =  347  307
Lista [ 328 ] =
Lista [ 329 ] =
Lista [ 330 ] =  350
Lista [ 331 ] =
Lista [ 332 ] =
Lista [ 333 ] =  353  313
Lista [ 334 ] =
Lista [ 335 ] =  355
Lista [ 336 ] =
Lista [ 337 ] =
Lista [ 338 ] =  358  318
Lista [ 339 ] =
Lista [ 340 ] =  341
Lista [ 341 ] =  342  340
Lista [ 342 ] =  362  343  341  322
Lista [ 343 ] =  344  342
Lista [ 344 ] =  345  343
Lista [ 345 ] =  346  344
Lista [ 346 ] =  347  345
Lista [ 347 ] =  367  348  346  327
Lista [ 348 ] =  349  347
Lista [ 349 ] =  350  348
Lista [ 350 ] =  351  349  330
Lista [ 351 ] =  371  352  350
Lista [ 352 ] =  372  353  351
Lista [ 353 ] =  373  354  352  333
Lista [ 354 ] =  355  353
Lista [ 355 ] =  356  354  335
Lista [ 356 ] =  376  357  355
Lista [ 357 ] =  377  358  356
Lista [ 358 ] =  378  359  357  338
Lista [ 359 ] =  358
Lista [ 360 ] =
Lista [ 361 ] =
Lista [ 362 ] =  382  342
Lista [ 363 ] =
Lista [ 364 ] =
Lista [ 365 ] =
Lista [ 366 ] =
Lista [ 367 ] =  387  347
Lista [ 368 ] =
Lista [ 369 ] =
Lista [ 370 ] =
Lista [ 371 ] =  372  351
Lista [ 372 ] =  392  373  371  352
Lista [ 373 ] =  393  372  353
Lista [ 374 ] =
Lista [ 375 ] =
Lista [ 376 ] =  377  356
Lista [ 377 ] =  397  378  376  357
Lista [ 378 ] =  398  377  358
Lista [ 379 ] =
Lista [ 380 ] =
Lista [ 381 ] =
Lista [ 382 ] =  402  362
Lista [ 383 ] =
Lista [ 384 ] =
Lista [ 385 ] =
Lista [ 386 ] =
Lista [ 387 ] =  407  367
Lista [ 388 ] =
Lista [ 389 ] =
Lista [ 390 ] =
Lista [ 391 ] =
Lista [ 392 ] =  412  393  372
Lista [ 393 ] =  413  392  373
Lista [ 394 ] =
Lista [ 395 ] =
Lista [ 396 ] =
Lista [ 397 ] =  417  398  377
Lista [ 398 ] =  397  378
Lista [ 399 ] =
Lista [ 400 ] =
Lista [ 401 ] =
Lista [ 402 ] =  422  382
Lista [ 403 ] =
Lista [ 404 ] =
Lista [ 405 ] =
Lista [ 406 ] =
Lista [ 407 ] =  427  387
Lista [ 408 ] =
Lista [ 409 ] =
Lista [ 410 ] =  430  411
Lista [ 411 ] =  431  412  410
Lista [ 412 ] =  413  411  392
Lista [ 413 ] =  433  414  412  393
Lista [ 414 ] =  434  413
Lista [ 415 ] =
Lista [ 416 ] =
Lista [ 417 ] =  437  397
Lista [ 418 ] =
Lista [ 419 ] =
Lista [ 420 ] =
Lista [ 421 ] =  441  422
Lista [ 422 ] =  421  402
Lista [ 423 ] =
Lista [ 424 ] =
Lista [ 425 ] =
Lista [ 426 ] =  446  427
Lista [ 427 ] =  426  407
Lista [ 428 ] =
Lista [ 429 ] =
Lista [ 430 ] =  450  431  410
Lista [ 431 ] =  451  430  411
Lista [ 432 ] =
Lista [ 433 ] =  434  413
Lista [ 434 ] =  454  433  414
Lista [ 435 ] =
Lista [ 436 ] =
Lista [ 437 ] =  457  417
Lista [ 438 ] =
Lista [ 439 ] =
Lista [ 440 ] =  441
Lista [ 441 ] =  461  440  421
Lista [ 442 ] =
Lista [ 443 ] =  463  444
Lista [ 444 ] =  445  443
Lista [ 445 ] =  446  444
Lista [ 446 ] =  466  445  426
Lista [ 447 ] =
Lista [ 448 ] =  468  449
Lista [ 449 ] =  450  448
Lista [ 450 ] =  451  449  430
Lista [ 451 ] =  471  450  431
Lista [ 452 ] =
Lista [ 453 ] =
Lista [ 454 ] =  455  434
Lista [ 455 ] =  456  454
Lista [ 456 ] =  457  455
Lista [ 457 ] =  477  458  456  437
Lista [ 458 ] =  459  457
Lista [ 459 ] =  458
Lista [ 460 ] =
Lista [ 461 ] =  462  441
Lista [ 462 ] =  482  463  461
Lista [ 463 ] =  462  443
Lista [ 464 ] =
Lista [ 465 ] =
Lista [ 466 ] =  467  446
Lista [ 467 ] =  487  468  466
Lista [ 468 ] =  467  448
Lista [ 469 ] =
Lista [ 470 ] =
Lista [ 471 ] =  491  451
Lista [ 472 ] =
Lista [ 473 ] =
Lista [ 474 ] =
Lista [ 475 ] =
Lista [ 476 ] =
Lista [ 477 ] =  497  457
Lista [ 478 ] =
Lista [ 479 ] =
Lista [ 480 ] =
Lista [ 481 ] =
Lista [ 482 ] =  502  462
Lista [ 483 ] =
Lista [ 484 ] =
Lista [ 485 ] =
Lista [ 486 ] =
Lista [ 487 ] =  507  467
Lista [ 488 ] =
Lista [ 489 ] =
Lista [ 490 ] =
Lista [ 491 ] =  511  492  471
Lista [ 492 ] =  512  493  491
Lista [ 493 ] =  494  492
Lista [ 494 ] =  493
Lista [ 495 ] =
Lista [ 496 ] =
Lista [ 497 ] =  517  477
Lista [ 498 ] =
Lista [ 499 ] =
Lista [ 500 ] =
Lista [ 501 ] =
Lista [ 502 ] =  522  482
Lista [ 503 ] =
Lista [ 504 ] =
Lista [ 505 ] =  506
Lista [ 506 ] =  526  507  505
Lista [ 507 ] =  527  506  487
Lista [ 508 ] =
Lista [ 509 ] =
Lista [ 510 ] =  511
Lista [ 511 ] =  531  512  510  491
Lista [ 512 ] =  532  511  492
Lista [ 513 ] =
Lista [ 514 ] =
Lista [ 515 ] =
Lista [ 516 ] =
Lista [ 517 ] =  537  497
Lista [ 518 ] =
Lista [ 519 ] =
Lista [ 520 ] =
Lista [ 521 ] =
Lista [ 522 ] =  542  502
Lista [ 523 ] =
Lista [ 524 ] =
Lista [ 525 ] =
Lista [ 526 ] =  546  527  506
Lista [ 527 ] =  528  526  507
Lista [ 528 ] =  548  527
Lista [ 529 ] =
Lista [ 530 ] =
Lista [ 531 ] =  551  532  511
Lista [ 532 ] =  533  531  512
Lista [ 533 ] =  553  532
Lista [ 534 ] =
Lista [ 535 ] =
Lista [ 536 ] =
Lista [ 537 ] =  557  517
Lista [ 538 ] =
Lista [ 539 ] =
Lista [ 540 ] =  541
Lista [ 541 ] =  542  540
Lista [ 542 ] =  562  543  541  522
Lista [ 543 ] =  544  542
Lista [ 544 ] =  545  543
Lista [ 545 ] =  565  546  544
Lista [ 546 ] =  566  545  526
Lista [ 547 ] =
Lista [ 548 ] =  568  549  528
Lista [ 549 ] =  569  550  548
Lista [ 550 ] =  570  551  549
Lista [ 551 ] =  571  550  531
Lista [ 552 ] =
Lista [ 553 ] =  573  554  533
Lista [ 554 ] =  574  555  553
Lista [ 555 ] =  556  554
Lista [ 556 ] =  557  555
Lista [ 557 ] =  577  558  556  537
Lista [ 558 ] =  559  557
Lista [ 559 ] =  558
Lista [ 560 ] =
Lista [ 561 ] =
Lista [ 562 ] =  582  542
Lista [ 563 ] =
Lista [ 564 ] =
Lista [ 565 ] =  585  566  545
Lista [ 566 ] =  586  565  546
Lista [ 567 ] =
Lista [ 568 ] =  588  569  548
Lista [ 569 ] =  570  568  549
Lista [ 570 ] =  590  571  569  550
Lista [ 571 ] =  591  570  551
Lista [ 572 ] =
Lista [ 573 ] =  593  574  553
Lista [ 574 ] =  573  554
Lista [ 575 ] =
Lista [ 576 ] =
Lista [ 577 ] =  597  557
Lista [ 578 ] =
Lista [ 579 ] =
Lista [ 580 ] =
Lista [ 581 ] =
Lista [ 582 ] =  602  562
Lista [ 583 ] =
Lista [ 584 ] =
Lista [ 585 ] =  586  565
Lista [ 586 ] =  587  585  566
Lista [ 587 ] =  607  588  586
Lista [ 588 ] =  587  568
Lista [ 589 ] =
Lista [ 590 ] =  591  570
Lista [ 591 ] =  592  590  571
Lista [ 592 ] =  612  593  591
Lista [ 593 ] =  592  573
Lista [ 594 ] =
Lista [ 595 ] =
Lista [ 596 ] =
Lista [ 597 ] =  617  577
Lista [ 598 ] =
Lista [ 599 ] =
Lista [ 600 ] =
Lista [ 601 ] =
Lista [ 602 ] =  622  582
Lista [ 603 ] =
Lista [ 604 ] =
Lista [ 605 ] =
Lista [ 606 ] =
Lista [ 607 ] =  627  587
Lista [ 608 ] =
Lista [ 609 ] =
Lista [ 610 ] =
Lista [ 611 ] =
Lista [ 612 ] =  632  592
Lista [ 613 ] =
Lista [ 614 ] =
Lista [ 615 ] =
Lista [ 616 ] =
Lista [ 617 ] =  618  597
Lista [ 618 ] =  638  617
Lista [ 619 ] =
Lista [ 620 ] =
Lista [ 621 ] =
Lista [ 622 ] =  642  602
Lista [ 623 ] =
Lista [ 624 ] =
Lista [ 625 ] =
Lista [ 626 ] =
Lista [ 627 ] =  647  607
Lista [ 628 ] =
Lista [ 629 ] =
Lista [ 630 ] =
Lista [ 631 ] =
Lista [ 632 ] =  652  612
Lista [ 633 ] =
Lista [ 634 ] =
Lista [ 635 ] =  655
Lista [ 636 ] =
Lista [ 637 ] =
Lista [ 638 ] =  658  618
Lista [ 639 ] =
Lista [ 640 ] =  641
Lista [ 641 ] =  642  640
Lista [ 642 ] =  662  643  641  622
Lista [ 643 ] =  644  642
Lista [ 644 ] =  645  643
Lista [ 645 ] =  646  644
Lista [ 646 ] =  647  645
Lista [ 647 ] =  667  648  646  627
Lista [ 648 ] =  649  647
Lista [ 649 ] =  650  648
Lista [ 650 ] =  651  649
Lista [ 651 ] =  652  650
Lista [ 652 ] =  672  653  651  632
Lista [ 653 ] =  654  652
Lista [ 654 ] =  655  653
Lista [ 655 ] =  656  654  635
Lista [ 656 ] =  676  657  655
Lista [ 657 ] =  677  658  656
Lista [ 658 ] =  678  659  657  638
Lista [ 659 ] =  658
Lista [ 660 ] =
Lista [ 661 ] =
Lista [ 662 ] =  682  642
Lista [ 663 ] =
Lista [ 664 ] =
Lista [ 665 ] =
Lista [ 666 ] =
Lista [ 667 ] =  687  647
Lista [ 668 ] =
Lista [ 669 ] =
Lista [ 670 ] =
Lista [ 671 ] =
Lista [ 672 ] =  692  652
Lista [ 673 ] =
Lista [ 674 ] =
Lista [ 675 ] =
Lista [ 676 ] =  677  656
Lista [ 677 ] =  697  678  676  657
Lista [ 678 ] =  698  677  658
Lista [ 679 ] =
Lista [ 680 ] =
Lista [ 681 ] =
Lista [ 682 ] =  702  662
Lista [ 683 ] =
Lista [ 684 ] =
Lista [ 685 ] =
Lista [ 686 ] =
Lista [ 687 ] =  707  667
Lista [ 688 ] =
Lista [ 689 ] =
Lista [ 690 ] =
Lista [ 691 ] =
Lista [ 692 ] =  712  672
Lista [ 693 ] =
Lista [ 694 ] =
Lista [ 695 ] =
Lista [ 696 ] =
Lista [ 697 ] =  717  698  677
Lista [ 698 ] =  697  678
Lista [ 699 ] =
Lista [ 700 ] =
Lista [ 701 ] =
Lista [ 702 ] =  722  682
Lista [ 703 ] =
Lista [ 704 ] =
Lista [ 705 ] =
Lista [ 706 ] =
Lista [ 707 ] =  727  687
Lista [ 708 ] =
Lista [ 709 ] =
Lista [ 710 ] =  711
Lista [ 711 ] =  731  712  710
Lista [ 712 ] =  732  711  692
Lista [ 713 ] =
Lista [ 714 ] =
Lista [ 715 ] =  716
Lista [ 716 ] =  736  717  715
Lista [ 717 ] =  737  716  697
Lista [ 718 ] =
Lista [ 719 ] =
Lista [ 720 ] =
Lista [ 721 ] =
Lista [ 722 ] =  742  702
Lista [ 723 ] =
Lista [ 724 ] =
Lista [ 725 ] =
Lista [ 726 ] =
Lista [ 727 ] =  747  707
Lista [ 728 ] =
Lista [ 729 ] =
Lista [ 730 ] =
Lista [ 731 ] =  751  732  711
Lista [ 732 ] =  733  731  712
Lista [ 733 ] =  753  732
Lista [ 734 ] =
Lista [ 735 ] =
Lista [ 736 ] =  756  737  716
Lista [ 737 ] =  738  736  717
Lista [ 738 ] =  758  737
Lista [ 739 ] =
Lista [ 740 ] =  741
Lista [ 741 ] =  742  740
Lista [ 742 ] =  762  743  741  722
Lista [ 743 ] =  744  742
Lista [ 744 ] =  745  743
Lista [ 745 ] =  746  744
Lista [ 746 ] =  747  745
Lista [ 747 ] =  767  748  746  727
Lista [ 748 ] =  749  747
Lista [ 749 ] =  750  748
Lista [ 750 ] =  770  751  749
Lista [ 751 ] =  771  750  731
Lista [ 752 ] =
Lista [ 753 ] =  773  754  733
Lista [ 754 ] =  774  755  753
Lista [ 755 ] =  775  756  754
Lista [ 756 ] =  776  755  736
Lista [ 757 ] =
Lista [ 758 ] =  778  759  738
Lista [ 759 ] =  779  758
Lista [ 760 ] =
Lista [ 761 ] =
Lista [ 762 ] =  782  742
Lista [ 763 ] =
Lista [ 764 ] =
Lista [ 765 ] =
Lista [ 766 ] =
Lista [ 767 ] =  787  747
Lista [ 768 ] =
Lista [ 769 ] =
Lista [ 770 ] =  790  771  750
Lista [ 771 ] =  791  770  751
Lista [ 772 ] =
Lista [ 773 ] =  793  774  753
Lista [ 774 ] =  775  773  754
Lista [ 775 ] =  795  776  774  755
Lista [ 776 ] =  796  775  756
Lista [ 777 ] =
Lista [ 778 ] =  798  779  758
Lista [ 779 ] =  778  759
Lista [ 780 ] =
Lista [ 781 ] =
Lista [ 782 ] =  762
Lista [ 783 ] =
Lista [ 784 ] =
Lista [ 785 ] =
Lista [ 786 ] =
Lista [ 787 ] =  767
Lista [ 788 ] =
Lista [ 789 ] =
Lista [ 790 ] =  791  770
Lista [ 791 ] =  792  790  771
Lista [ 792 ] =  793  791
Lista [ 793 ] =  792  773
Lista [ 794 ] =
Lista [ 795 ] =  796  775
Lista [ 796 ] =  797  795  776
Lista [ 797 ] =  798  796
Lista [ 798 ] =  797  778
Lista [ 799 ] =
177  256
177->197->217->218->238->239->259->result: 1


����������������
���������������
������������������
����������������
����������������
����������������
���������������
�����������������
�������������A�
��������������+��
��������������++�
�������������++
��������������R��+
����������������
�����������������
����������������
��������������
��������������������
����������������
����������������
����������������
���������������
�����������������
����������������
����������������
����������������
����������������
������������������
���������������
����������������
����������������
���������������
��������������������
����������������
����������������
����������������
����������������
������������������
����������������
����������������