#include <cassert>
#include<iostream>
#include <vector>
using namespace std;
vector<vector<int>> polaczenia;
vector<int> stany;
vector<int> rozmiary;
void print_v2(vector<vector<int>> & plotno) {
for (auto s: plotno) {
for (auto v:s)
cout << v << " ";
cout << "\n";
}
}
void jazda(int plat) {
if (rozmiary[plat] > 0) {
stany[plat]= (stany[plat]+1) % rozmiary[plat];
jazda(polaczenia[plat][stany[plat]]);
}
}
bool test_stany(int platform) {
for (int i=0; i<platform; i++)
if (stany[i] != 0)
return(false);
return(true);
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int platform, l_polaczen, el, wynik;
cin >> platform;
for (int i=0; i<platform; i++){
polaczenia.push_back({});
cin >> l_polaczen;
stany.push_back(0);
rozmiary.push_back(l_polaczen);
for(int pp=0; pp < l_polaczen; pp++) {
cin>>el;
polaczenia[i].push_back(el-1);
}
}
wynik = 0;
while (true) {
wynik+= 1;
jazda(0);
if (test_stany(platform))
break;
}
cout << wynik << "\n";
}
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 57 58 59 | #include <cassert> #include<iostream> #include <vector> using namespace std; vector<vector<int>> polaczenia; vector<int> stany; vector<int> rozmiary; void print_v2(vector<vector<int>> & plotno) { for (auto s: plotno) { for (auto v:s) cout << v << " "; cout << "\n"; } } void jazda(int plat) { if (rozmiary[plat] > 0) { stany[plat]= (stany[plat]+1) % rozmiary[plat]; jazda(polaczenia[plat][stany[plat]]); } } bool test_stany(int platform) { for (int i=0; i<platform; i++) if (stany[i] != 0) return(false); return(true); } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int platform, l_polaczen, el, wynik; cin >> platform; for (int i=0; i<platform; i++){ polaczenia.push_back({}); cin >> l_polaczen; stany.push_back(0); rozmiary.push_back(l_polaczen); for(int pp=0; pp < l_polaczen; pp++) { cin>>el; polaczenia[i].push_back(el-1); } } wynik = 0; while (true) { wynik+= 1; jazda(0); if (test_stany(platform)) break; } cout << wynik << "\n"; } |
English