#include<iostream> using namespace std; int main() { int l,l1; cin>>l; l1=l; int *tab=new int[l]; for(int i=0;i<l;i++) { tab[i]=0; int s=0; cin>>s; tab[i]=s; } int g,g1; cin>>g; g1=g; string slowo; cin>>slowo; long long iloczyn =l*g; while(l!=g) { if(l>g) l-=g; else g-=l; } int k=0; int s=0; int i=0; for( i=0;i<(iloczyn/g);i++) { if(slowo[s]=='W') tab[k]=tab[k]+1; else tab[k]=tab[k]-1; //cout<<tab[k]<<endl; if(tab[k]==0) { cout<<i+1<<endl; break; } k++; s++; if(k>=l1) k=0; if(s>=g1) s=0; ///cout<<s<<endl; } if(i==(iloczyn/g)) cout<<"-1"<<endl; 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 57 | #include<iostream> using namespace std; int main() { int l,l1; cin>>l; l1=l; int *tab=new int[l]; for(int i=0;i<l;i++) { tab[i]=0; int s=0; cin>>s; tab[i]=s; } int g,g1; cin>>g; g1=g; string slowo; cin>>slowo; long long iloczyn =l*g; while(l!=g) { if(l>g) l-=g; else g-=l; } int k=0; int s=0; int i=0; for( i=0;i<(iloczyn/g);i++) { if(slowo[s]=='W') tab[k]=tab[k]+1; else tab[k]=tab[k]-1; //cout<<tab[k]<<endl; if(tab[k]==0) { cout<<i+1<<endl; break; } k++; s++; if(k>=l1) k=0; if(s>=g1) s=0; ///cout<<s<<endl; } if(i==(iloczyn/g)) cout<<"-1"<<endl; return 0; } |