만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

개미

면접 대비

시간 제한1초메모리 제한1024 MB

요약
n마리 개미가 각각 왼쪽 또는 오른쪽을 보고 움직일 때, 충돌해서 방향을 바꾸는 횟수를 개미마다 구합니다.
난이도

보통10점 중 6점

유형
누적 합, 시뮬레이션
정답자
아직 제출이 없습니다

문제

수직선 위에 개미 nn마리가 서 있다. ii번째 개미는 점 ii에 있다. 각 개미는 오른쪽(좌표가 증가하는 방향) 또는 왼쪽(좌표가 감소하는 방향)을 보고 있다. 개미는 점으로 볼 수 있을 만큼 작다.

과정

신호가 울리면 모든 개미가 보고 있는 방향으로 같은 속력 1로 걷기 시작한다. 두 개미가 같은 점에서 만나면 서로 튕겨 나온다. 두 개미 모두 방향을 바꾸고 계속 걷는다. 일정 시간이 지나면 더 이상 충돌이 일어나지 않는다는 것을 증명할 수 있다. 각 개미가 다른 개미와 몇 번 부딪히는지 계산하는 프로그램을 작성할 수 있겠는가?

입력

첫 번째 줄에 개미의 수를 나타내는 정수 nn (1≤n≤300 0001 \le n \le 300\,000)이 주어진다. 두 번째 줄에는 L과 P로만 이루어진 길이 nn의 문자열이 주어진다. ii번째 글자가 L이면 ii번째 개미는 처음에 왼쪽을 본다. P이면 오른쪽을 본다.

출력

nn개의 정수를 공백 한 칸으로 구분하여 출력한다. ii번째 정수는 ii번째 개미가 튕긴 횟수이다.

힌트

예시에서 첫 번째 개미는 처음에 왼쪽을 보고 있어서 다른 개미와 한 번도 부딪히지 않는다. 마지막 개미는 점 5.5에서 다섯 번째 개미와 충돌한 뒤 오른쪽으로 걸어가며 멈추지 않는다. 세 번째 개미는 점 3.5에서 네 번째 개미와 부딪힌 뒤 왼쪽으로 걸어간다. 두 번째 개미는 점 3에서 세 번째 개미와 부딪혀 왼쪽으로 방향을 바꾸고 계속 걷는다.

예제1

  1. 예제 1

    입력
    6
    LPPLPL
    
    예상 출력
    0 1 3 3 2 1