#include <iostream> #include <string.h> using namespace std; int il; bool myEnd = false; string m; int main() { cin>>il; m.reserve(il); cin>>m; int odp[il]; for (int i=0; i<il; i++) { odp[i]=0; } while(!myEnd) { myEnd = true; for (int i=0; i<il; i++) { if((m[i]=='L')&&(i!=0)) { if(m[i-1] == 'P') { m.replace(i,1,"P"); m.replace(i-1,1,"L"); odp[i]++; odp[i-1]++; myEnd = false; } } if((m[i]=='P')&&(i != il-1)) { if(m[i+1] == 'L') { m.replace(i,1,"L"); m.replace(i+1,1,"P"); odp[i]++; odp[i+1]++; myEnd = false; } } } } cout<<odp[0]; for (int i=1; i<il; i++) { cout<<" "<<odp[i]; } 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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | #include <iostream> #include <string.h> using namespace std; int il; bool myEnd = false; string m; int main() { cin>>il; m.reserve(il); cin>>m; int odp[il]; for (int i=0; i<il; i++) { odp[i]=0; } while(!myEnd) { myEnd = true; for (int i=0; i<il; i++) { if((m[i]=='L')&&(i!=0)) { if(m[i-1] == 'P') { m.replace(i,1,"P"); m.replace(i-1,1,"L"); odp[i]++; odp[i-1]++; myEnd = false; } } if((m[i]=='P')&&(i != il-1)) { if(m[i+1] == 'L') { m.replace(i,1,"L"); m.replace(i+1,1,"P"); odp[i]++; odp[i+1]++; myEnd = false; } } } } cout<<odp[0]; for (int i=1; i<il; i++) { cout<<" "<<odp[i]; } return 0; } |