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
#include<iostream>
#include<vector>
#include<queue>

using namespace std;

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int n;
    cin >> n;

    vector<int> wielkosc_kolejek(n, 0);
    vector<int> w(n, 0);
    queue<int> kolejka;
    string a;
    cin >> a;
    for(int i = 0; i < n; i++)
    {
        if(a[i] == 'P')
        {
            wielkosc_kolejek[i] = kolejka.size();
            kolejka.push(i);
        }
        if(a[i] == 'L')
        {
            if(kolejka.size() != 0)
            {
                w[kolejka.front()] = 1 + 2 * wielkosc_kolejek[kolejka.front()];
                if(a[kolejka.front()] == 'L')
                {
                    w[kolejka.front()]--;
                }
                kolejka.pop();
              //  cout<<"a";
                kolejka.push(i);
                wielkosc_kolejek[i] = kolejka.size();
            }
        }
    }
    int d = 0;
    while(kolejka.empty() == false)
    {
        int i = kolejka.front();
        w[i] = 2 * (wielkosc_kolejek[i] - d);
        d++;
        kolejka.pop();
        if(a[i] == 'L')
        {
            w[i]--;
        }
    }
    for(int i = 0; i < n; i++)
    {
        cout<<w[i]<<" ";
    }

    return 0;
}