Жагсаал

시간 제한2초메모리 제한512 MB

요약
각 병사가 왼쪽 또는 오른쪽을 볼 때 가리는 장애물 높이를 지나쳐 보이는 병사 수를 구합니다.
난이도

보통10점 중 7점

유형
스택, 분할 정복, 재귀
정답자
아직 제출이 없습니다

문제

군부대에 nn명의 병사가 있다. 병사들은 줄을 설 때 각자 오른쪽이나 왼쪽으로 고개를 돌리고 선다. 또한 각 병사는 줄에서 자신이 차지하는 위치 번호인 11부터 nn까지의 수로 번호가 매겨진다. ii번째 병사의 키는 hih_i이다. 다음 조건이 성립할 때 ii번째 병사는 jj번째 병사를 볼 수 있다:

  • ii번째 병사가 jj번째 병사 쪽을 보고 있다.
  • 두 병사 사이에 있는 모든 병사가 jj번째 병사보다 키가 크지 않다.

예를 들어 h1=177h_1 = 177, h2=179h_2 = 179, h3=171h_3 = 171, h4=189h_4 = 189인 네 병사가 줄을 서 있고 모두 왼쪽을 보고 있다면, 22번째 병사는 11번째 병사만 볼 수 있고, 33번째 병사는 22번째 병사만 볼 수 있으며(키가 더 큰 22번째 병사가 11번째 병사를 가리기 때문이다), 44번째 병사는 22번째와 33번째 병사를 볼 수 있다.

각 병사가 서로 다른 병사를 몇 명이나 볼 수 있는지 장교 Бат이 알아내야 하므로, 그를 도와라.

입력

첫째 줄에 줄에 있는 병사의 수 nn이 주어진다 (1≤n≤1051 \le n \le 10^5).

둘째 줄에 줄에 있는 병사의 키 h1,h2,…,hnh_1, h_2, \ldots, h_n이 nn개 주어진다 (1≤hi≤1091 \le h_i \le 10^9).

셋째 줄에 각 병사가 보는 방향을 나타내는 nn개의 문자가 주어진다. ii번째 문자가 "L"이면 ii번째 병사가 왼쪽을 보고 있으므로 볼 수 있는 병사는 1,2,…,i−11, 2, \ldots, i-1번째 병사이다. ii번째 문자가 "R"이면 ii번째 병사가 오른쪽을 보고 있으므로 볼 수 있는 병사는 i+1,i+2,…,ni+1, i+2, \ldots, n번째 병사이다.

출력

ii번째 수가 ii번째 병사가 줄에 서서 보고 있는 병사의 수가 되도록 nn개의 수를 출력한다.

예제3

  1. 예제 1

    입력
    4
    177 179 171 189
    LLLL
    
    예상 출력
    0 1 1 2
    
  2. 예제 2

    입력
    5
    177 179 174 171 192
    RLRLL
    
    예상 출력
    2 1 2 2 3
    
  3. 예제 3

    입력
    5
    177 179 168 168 161
    RLRLL
    
    예상 출력
    1 1 1 2 3