Skip to content

가위바위보

Unrated
한국어

Language

Contribute a translation
Time limit
1000 ms
Memory limit
1024 MB
Submissions
0
Correct
0
Solved by
0
AC rate

Statement

$1$번부터 $N$번까지 번호가 부여된 $N$명의 사람이 일렬로 서 있다. $i$ ($1 \le i \le N$)번 사람은 왼쪽에서 $i$번째에 서 있으며, 하나의 카드 $A_i$를 가지고 있다. 각 카드는 가위(S), 바위(R), 보(P) 중 하나이다.

서로 다른 두 사람 사이에 다른 사람이 없다면, 그 두 사람은 서로 인접하다고 하자. 여러분은 인접한 두 사람을 골라 대결시킬 수 있다. 한 번의 대결은 다음과 같이 진행된다.

  • 두 사람의 카드가 서로 다르면, 가위바위보 규칙에 따라 승자가 결정된다. 즉, 바위(R)는 가위(S)를 이기고, 가위(S)는 보(P)를 이기고, 보(P)는 바위(R)를 이긴다.
  • 두 사람의 카드가 같으면, 여러분이 승자를 임의로 정할 수 있다.
  • 패자는 퇴장하며, 승자는 자신의 카드를 그대로 유지한 채 그 자리에 남는다. 퇴장으로 인해 새롭게 인접해지는 두 사람이 생길 수 있으며, 두 사람은 이후 대결을 할 수 있다.

여러분은 정확히 $N - 1$번의 대결을 진행하여 단 한 명의 우승자만 남기려 한다. 각 사람에 대해, 그 사람이 우승자가 될 수 있도록 대결하는 방법이 존재하는지 판별하는 프로그램을 작성하라.

Constraints

  • $1 \le N \le 200\,000$
  • $A$는 영어 알파벳 대문자 S, R, P로만 이루어진 길이 $N$의 문자열이다.

Subtasks

  1. (13점) $N \le 3$
  2. (16점) 문자열 $A$는 최대 두 종류의 문자로만 이루어져 있다.
  3. (47점) $N \le 100$
  4. (31점) $N \le 5\,000$
  5. (43점) 추가 제약 조건 없음.

Input

첫 줄에 정수 $N$이 주어진다.

그다음 줄에 길이 $N$의 문자열 $A$가 주어진다. $A$의 $i$번째 문자 $A_i$는 $i$번 사람이 가진 카드를 나타내며, 영어 알파벳 대문자 S, R, P 중 하나이다 ($1 \le i \le N$).

Output

첫 줄에 길이 $N$의 문자열을 출력한다. 이 중 $i$번째 문자는, $i$번 사람이 우승자가 될 수 있다면 1, 아니면 0이어야 한다 ($1 \le i \le N$).

Examples

Sample input 1
3
RPP
Sample output 1
011

$2$번과 $3$번을 먼저 대결시키면 두 사람의 카드가 같으므로, 여러분이 임의로 승자를 정할 수 있다. $2$번을 승자로 정했다면, 남은 $1$번과 $2$번이 대결하면 보(P)가 바위(R)를 이기므로, $2$번이 우승자가 될 수 있다.

$2$번과 $3$번을 대결시켜 $3$번을 승자로 정한 후, $1$번과 대결시키면, $3$번이 우승자가 될 수 있다.

바위(R)는 보(P)를 이길 수 없으므로, $1$번은 절대로 우승자가 될 수 없다.

Sample input 2
3
RPS
Sample output 2
101

$2$번과 $3$번을 먼저 대결시키면 가위(S)가 보(P)를 이겨 $3$번이 이긴다. 남은 $1$번과 $3$번이 대결하면 바위(R)가 가위(S)를 이기므로, $1$번이 우승자가 될 수 있다.

$1$번과 $2$번을 먼저 대결시키면 보(P)가 바위(R)를 이겨 $2$번이 이긴다. 남은 $2$번과 $3$번이 대결하면 가위(S)가 보(P)를 이기므로, $3$번이 우승자가 될 수 있다.

$2$번은 절대로 우승자가 될 수 없다.

Tags

No tags yet

Source