#include <iostream>
using namespace std;
int ile,i,l,p,x=0,y=0;
string ciag;
int main()
{
cin>>ile;
cin>>ciag;
int mrowki[ile];
i=0;
while(ciag[i]=='L' && i<ile-2)
{
mrowki[i]=0;
i++;
}
l=i;
i=ile-1;
while(ciag[i]=='P' && i>=0)
{
mrowki[i]=0;
i--;
}
p=i;
for(i=l;i<p;i++)
{
mrowki[i]=0;
}
for(i=l;i<=p;i++)
{
if(ciag[i]=='L')
{
y++;
}
}
for(i=l;i<=p;i++)
{
if(ciag[i]=='L')
{
y--;
}
if(i-l>=y)
{
mrowki[i]+=y;
}
else
{
mrowki[i]+=i-l;
}
if(p-i>=x)
{
mrowki[i]+=x;
}
else
{
mrowki[i]+=p-i;
}
if(ciag[i]=='P')
{
x++;
}
}
for(i=0;i<l;i++)
{
cout << 0 << " ";
}
cout<< mrowki[l]+1 << " ";
for(i=l+1;i<ile-1;i++)
{
cout << mrowki[i] <<" ";
}
cout << mrowki[i]+1;
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 73 74 75 | #include <iostream> using namespace std; int ile,i,l,p,x=0,y=0; string ciag; int main() { cin>>ile; cin>>ciag; int mrowki[ile]; i=0; while(ciag[i]=='L' && i<ile-2) { mrowki[i]=0; i++; } l=i; i=ile-1; while(ciag[i]=='P' && i>=0) { mrowki[i]=0; i--; } p=i; for(i=l;i<p;i++) { mrowki[i]=0; } for(i=l;i<=p;i++) { if(ciag[i]=='L') { y++; } } for(i=l;i<=p;i++) { if(ciag[i]=='L') { y--; } if(i-l>=y) { mrowki[i]+=y; } else { mrowki[i]+=i-l; } if(p-i>=x) { mrowki[i]+=x; } else { mrowki[i]+=p-i; } if(ciag[i]=='P') { x++; } } for(i=0;i<l;i++) { cout << 0 << " "; } cout<< mrowki[l]+1 << " "; for(i=l+1;i<ile-1;i++) { cout << mrowki[i] <<" "; } cout << mrowki[i]+1; return 0; } |
English