#include <iostream> using namespace std; int tab[300'007][2]; int main() { string s; int n, pra, lew, p, p2, odp; cin>>n>>s; for(int a=1; a<=n; a++) { tab[a][0]=tab[a-1][0]; if(s[a-1]=='P') tab[a][0]++; } for(int a=n; a>0; a--) { tab[a][1]=tab[a+1][1]; if(s[a-1]=='L') tab[a][1]++; } for(int a=1; a<=n; a++) { odp=0; p=tab[a-1][0]; p2=tab[a+1][1]; odp=2*min(p,p2); if(p==p2) cout<<odp<<" "; else { if(s[a-1]=='P' && p2>p) odp++; if(s[a-1]=='L' && p2<p) odp++; cout<<odp<<" "; } } }
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 | #include <iostream> using namespace std; int tab[300'007][2]; int main() { string s; int n, pra, lew, p, p2, odp; cin>>n>>s; for(int a=1; a<=n; a++) { tab[a][0]=tab[a-1][0]; if(s[a-1]=='P') tab[a][0]++; } for(int a=n; a>0; a--) { tab[a][1]=tab[a+1][1]; if(s[a-1]=='L') tab[a][1]++; } for(int a=1; a<=n; a++) { odp=0; p=tab[a-1][0]; p2=tab[a+1][1]; odp=2*min(p,p2); if(p==p2) cout<<odp<<" "; else { if(s[a-1]=='P' && p2>p) odp++; if(s[a-1]=='L' && p2<p) odp++; cout<<odp<<" "; } } } |