#include <cstdio>
struct Platforma{
int nTasm;
int tasma[105];
int biezaca;
}platfa[105];
int n,x,ile;
void jazdaa(int i ){
platfa[i].biezaca++;
if(platfa[i].biezaca > platfa[i].nTasm)
platfa[i].biezaca = 1;
if(platfa[i].nTasm > 0){
jazdaa( platfa[i].tasma[ platfa[i].biezaca ]);
} else
return;
return;
}
bool sprawdzTasmociagi (){
for(int i=1; i<=n; i++){
if(platfa[i].biezaca>0 && platfa[i].biezaca<platfa[i].nTasm)
return false;
}
return true;
}
int main(){
scanf(" %d ",&n);
for(int i=1; i<=n; i++){
scanf(" %d ",&x);
platfa[ i ].nTasm = x;
platfa[ i ].biezaca = 0;
for(int j=0; j<x; j++){
scanf(" %d ",&platfa[ i ].tasma[ ++platfa[ i ].biezaca ]);
}
platfa[ i ].biezaca = 0;
}
jazdaa(1);
ile = 1;
while(!sprawdzTasmociagi()){
jazdaa(1);
ile++;
}
printf("%d\n",ile);
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 | #include <cstdio> struct Platforma{ int nTasm; int tasma[105]; int biezaca; }platfa[105]; int n,x,ile; void jazdaa(int i ){ platfa[i].biezaca++; if(platfa[i].biezaca > platfa[i].nTasm) platfa[i].biezaca = 1; if(platfa[i].nTasm > 0){ jazdaa( platfa[i].tasma[ platfa[i].biezaca ]); } else return; return; } bool sprawdzTasmociagi (){ for(int i=1; i<=n; i++){ if(platfa[i].biezaca>0 && platfa[i].biezaca<platfa[i].nTasm) return false; } return true; } int main(){ scanf(" %d ",&n); for(int i=1; i<=n; i++){ scanf(" %d ",&x); platfa[ i ].nTasm = x; platfa[ i ].biezaca = 0; for(int j=0; j<x; j++){ scanf(" %d ",&platfa[ i ].tasma[ ++platfa[ i ].biezaca ]); } platfa[ i ].biezaca = 0; } jazdaa(1); ile = 1; while(!sprawdzTasmociagi()){ jazdaa(1); ile++; } printf("%d\n",ile); return 0; } |
English