#include <cstdio> int main() { int n; scanf("%d", &n); int tab[n][n+1]; int licznik[n]; int r; int out = 0; for (int i = 0; i < n; i++){ scanf("%d", &r); tab[i][0] = r; licznik[i] = 1; for (int j = 1; j <= r; j++){ scanf("%d", &tab[i][j]); } } bool reset = false; int temp; while(!reset){ for (int i = 0; i < n;){ if(tab[i][0] != 0){ temp = tab[i][licznik[i]] - 1; if (licznik[i] == tab[i][0]){ licznik[i] = 1; } else { licznik[i]++; } i = temp; } else { break; } } for (int i = 0; i < n; i++){ if (licznik[i] != 1){ reset = false; break; } else { reset = true; } } out++; } printf("%d", out); return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | #include <cstdio> int main() { int n; scanf("%d", &n); int tab[n][n+1]; int licznik[n]; int r; int out = 0; for (int i = 0; i < n; i++){ scanf("%d", &r); tab[i][0] = r; licznik[i] = 1; for (int j = 1; j <= r; j++){ scanf("%d", &tab[i][j]); } } bool reset = false; int temp; while(!reset){ for (int i = 0; i < n;){ if(tab[i][0] != 0){ temp = tab[i][licznik[i]] - 1; if (licznik[i] == tab[i][0]){ licznik[i] = 1; } else { licznik[i]++; } i = temp; } else { break; } } for (int i = 0; i < n; i++){ if (licznik[i] != 1){ reset = false; break; } else { reset = true; } } out++; } printf("%d", out); return 0; } |