• Loading...

Problem A: Partial Teacher

Time limit per test: 1 second

A teacher decides to give toffees to his students. He asks n students to stand in a queue. Since the teacher is very partial, he follows the following rule to distribute toffees.

He looks at the first two students and gives more toffees to the student having higher marks than the other one. If they have the same marks they get the same number of toffees. The same procedure is followed for each pair of adjacent students starting from the first one to the last one.

It is given that each student receives at least one toffee. You have to find the number of toffees given to each student by the teacher such that the total number of toffees is minimum.


Input

The first line of input contains the number of students n (2<=n<=1000). The second line gives (n-1) characters consisting of "L", "R" and "=". For each pair of adjacent students "L" means that the left student has higher marks, "R" means that the right student has higher marks and "=" means that both have equal marks.


Output

Output consists of n integers separated by a space representing the number of toffees each student receives in the queue starting from the first one to the last one.


Sample Tests

Input


5

LRLR

Output


2 1 2 1 2

Input


5

=RRR

Output


1 1 2 3 4


Solution:

Let the student at position 'x' receives 't' toffees

Initially t=1 and temp=1
Now move towards RIGHT till you encounter a 'R' or end of string , if in the path 'L' is encountered increment t by 1.Following code performs the same :
Now if temp is greater than t ; t is initialised as temp and temp as 1.

Now move towards LEFT till you encounter a 'L' or beginning of string , if in the path 'R' is encountered increment by 1.
Now if temp is greater than t ; t is initialised as temp.

't' is the required number of toffees thus obtained.


Code:


#include<iostream>
using namespace std;
int main()
{
    int n,ans[1000],temp,i,j;
    fill(ans,ans+1000,0);
    char s[1000];
    cin>>n;
    cin>>s;
    for(i=0;i<n;i++)
    {
        ans[i]=1;
        temp=1;
        for(j=i;j<n;j++)
        {
            if(s[j]=='R')
                break;
            else if(s[j]=='L')
                temp++;
        }
        if(temp>ans[i])
            ans[i]=temp;
        temp=1;
        for(j=i-1;j>=0;j--)
        {
            if(s[j]=='L')
                break;
            else if(s[j]=='R')
                temp++;
        }
        if(temp>ans[i])
            ans[i]=temp;       
    }
    for(i=0;i<n;i++)
            cout<<ans[i]<<" ";
    return 0;
}

Submit your solution

You need to be logged in to submit a solution.

discussions


xiaoyouleiI just want the #7 test data , how can I get it?
Q:I just want the #7 test data , how can I get it?
A:Pls visit http://www.codeforces.com/contest/67/status/A, you can view the Accepted solutions and test cases there by clicking ID(#)

post a question

Loading...

Problem List
A
B
C
D
E