만드는 중입니다

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

큐브 쌓기

면접 대비

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

요약
큐브가 하나씩 놓인 N개의 스택에서 한 스택을 다른 스택 위에 올리는 연산과, 주어진 큐브 아래에 있는 큐브 수를 세는 연산을 처리합니다.
난이도

보통10점 중 5점

유형
유니온 파인드, 배열
정답자
아직 제출이 없습니다

문제

Farmer John과 Betsy가 1부터 N까지 번호가 붙은 동일한 큐브 N개(1 ≤ N ≤ 30,000)로 게임을 한다. 처음에는 큐브가 하나씩 들어 있는 스택 N개가 있다. Farmer John은 Betsy에게 P개(1 ≤ P ≤ 100,000)의 연산을 수행하라고 요청한다. 연산은 이동과 세기 두 종류이다.

  • 이동 연산에서 Betsy는 큐브 X가 들어 있는 스택을 큐브 Y가 들어 있는 스택 위로 옮긴다.
  • 세기 연산에서 Betsy는 큐브 X가 들어 있는 스택에서 큐브 X 아래에 있는 큐브의 개수를 세고, 그 값을 보고한다.

이 게임의 결과를 검증하는 프로그램을 작성하라.

입력

첫 줄에 정수 P가 하나 주어진다. 이어지는 P개의 줄은 각각 합법적인 연산 하나를 나타낸다. 줄은 이동 연산이면 M, 세기 연산이면 C로 시작한다. 이동 연산의 줄에는 정수 X와 Y가, 세기 연산의 줄에는 정수 X 하나가 들어 있다.

입력에는 N의 값이 주어지지 않는다. 스택을 자기 자신의 위로 옮기는 이동 연산은 없다.

출력

세기 연산의 결과를 입력에 나오는 순서대로 한 줄에 하나씩 출력한다.

예제1

  1. 예제 1

    입력
    6
    M 1 6
    C 1
    M 2 4
    M 2 6
    C 3
    C 4
    
    예상 출력
    1
    0
    2