#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<<" "; } } }  | 
            
        
                    English