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
#include <bits/stdc++.h>

using namespace std;

int main(){
	ios_base::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);
	
	int n, g;
	cin >> n;
	int tab1[n];
	
	for(int i=0; i<n; i++){
		char a;
		cin >> a;
		if(a=='L') tab1[i]=-1;
		if(a=='P') tab1[i]=1;
	}
	
	int tabL[n][2]; int tabR[n][2];
	for(int i = 0; i < n; i++){
		tabL[i][0]=0; tabL[i][1]=0; tabR[i][1]=0; tabR[i][1]=0; 
	}
	for(int i = 0; i < n; i++){
		if(i==0) tabL[i][0]=0;
		else tabL[i][0]=tabL[i-1][1];
		if(tab1[i]==1) tabL[i][1]=tabL[i][0]+1;
		else tabL[i][1]=tabL[i][0];
	}
	for(int i = n-1; i >= 0; i--){
		if(i==n-1) tabR[i][0]=0;
		else tabR[i][0]=tabR[i+1][1];
		if(tab1[i]==-1) tabR[i][1]=tabR[i][0]+1;
		else tabR[i][1]=tabR[i][0];
	}
	for(int i = 0; i < n; i++) cout << min(tabL[i][0]+tabL[i][1], tabR[i][0]+tabR[i][1]) << ' ';
	return 0;
}