#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; } |
English