#include <iostream> using namespace std; int main() { int t, a, b, najm=10000000; string cykl; cin >> t; int tab[t]; for(int i=1; i<=t; i++) { cin >> tab[i]; if(tab[i]<najm) najm=tab[i]; } cin >> b; int W[b+1], P[b+1]; cin >> cykl; int dod=1; for(int i=1; i<=cykl.size(); i++) { if(cykl[i-1]=='W') { W[i]=dod; P[i]=0; dod++; } if(cykl[i-1]=='P') { P[i]=dod; W[i]=0; dod++; } } int kol=1, k=0, ile=0; for(int i=1; i<=5000000; i++) { for(int j=1; j<=t; j++) { k++; if(k==b+1) k=1; if(kol==b+1) kol=1; if(W[k]==kol) { tab[j]+=1; kol++; ile++; } if(P[k]==kol) { tab[j]-=1; ile++; kol++; if(tab[j]==0) { cout << ile; return 0; } } } } cout << -1; }
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 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | #include <iostream> using namespace std; int main() { int t, a, b, najm=10000000; string cykl; cin >> t; int tab[t]; for(int i=1; i<=t; i++) { cin >> tab[i]; if(tab[i]<najm) najm=tab[i]; } cin >> b; int W[b+1], P[b+1]; cin >> cykl; int dod=1; for(int i=1; i<=cykl.size(); i++) { if(cykl[i-1]=='W') { W[i]=dod; P[i]=0; dod++; } if(cykl[i-1]=='P') { P[i]=dod; W[i]=0; dod++; } } int kol=1, k=0, ile=0; for(int i=1; i<=5000000; i++) { for(int j=1; j<=t; j++) { k++; if(k==b+1) k=1; if(kol==b+1) kol=1; if(W[k]==kol) { tab[j]+=1; kol++; ile++; } if(P[k]==kol) { tab[j]-=1; ile++; kol++; if(tab[j]==0) { cout << ile; return 0; } } } } cout << -1; } |