아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

로봇

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

요약
로봇의 이동 명령 문자열에서 명령 하나를 지웠을 때 로봇이 얻는 총점을 각 명령마다 구한다. 각 셀 방문은 방문 횟수와 좌표로 정해지는 점수를 준다.
난이도

어려움10점 중 8점

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

문제

무한히 큰 2차원 체스판이 있고, 모든 칸은 정수 좌표 (x,y)(x, y)로 나타낸다. 시작 칸의 좌표는 (0,0)(0, 0)이다. 이 칸에서 오른쪽으로 xx칸, 위쪽으로 yy칸 이동하면 좌표가 (x,y)(x, y)인 칸에 도착한다. xx와 yy는 음수일 수 있으며, 이는 반대 방향으로 이동함을 뜻한다.

(0,0)(0,0)에서 출발하는 로봇이 명령열 c1c2…cnc_1 c_2 \ldots c_n을 실행한다. 각 ci∈{L,R,D,U}c_i \in \{\mathtt{L}, \mathtt{R}, \mathtt{D}, \mathtt{U}\}는 각각 왼쪽, 오른쪽, 아래, 위 방향으로 한 칸 이동하는 명령이다. 예를 들어 명령열이 LRLD\mathtt{LRLD}라면 로봇이 지나는 칸은 (0,0)→(−1,0)→(0,0)→(−1,0)→(−1,−1)(0, 0) \to (-1, 0) \to (0, 0) \to (-1, 0) \to (-1, -1)이다. 이러한 열을 로봇의 이동 기록이라고 하며, 위 예에서 이동 기록은 다섯 개의 원소를 갖는다.

이동 기록에 있는 모든 칸 (x,y)(x, y)에 대해, 로봇이 이 칸을 ii번째로 방문할 때 얻는 점수는 f(x,y,i)=i⋅((∣x∣+1)xor(∣y∣+1))+i.f(x, y, i) = i \cdot \left((|x| + 1) \mathrm{xor} (|y| + 1)\right) + i\text{.} 전체 점수는 이동 기록에 있는 모든 칸의 점수를 더한 값이다. 위 예에서 전체 점수는 f(0,0,1)+f(−1,0,1)+f(0,0,2)+f(−1,0,2)+f(−1,−1,1)=1+4+2+8+1=16f(0, 0, 1) + f(-1, 0, 1) + f(0, 0, 2) + f(-1, 0, 2) + f(-1, -1, 1) = 1 + 4 + 2 + 8 + 1 = 16이다.

11 이상 nn 이하의 모든 ii에 대해 다음을 구하라. 명령열에서 cic_i를 제거하고 남은 명령열 c1c2…ci−1ci+1…cnc_1 c_2 \ldots c_{i - 1} c_{i + 1} \ldots c_n을 실행했을 때 로봇이 얻는 전체 점수는 얼마인가?

입력

첫째 줄에 정수 nn이 주어진다. (2≤n≤3⋅1052 \le n \le 3 \cdot 10^{5})

둘째 줄에 길이가 nn인 문자열 c1c2…cnc_1 c_2 \ldots c_n이 주어지며, 이는 명령열을 나타낸다.

출력

nn개의 줄을 출력한다. ii번째 줄에는 명령 cic_i를 제거했을 때의 전체 점수를 출력한다.

예제1

  1. 예제 1

    입력
    5
    LRLDD
    
    예상 출력
    14
    11
    14
    16
    16