만드는 중입니다

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

농장 업데이트

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

요약
시간 순서대로 농장 비활성화, 도로 추가, 도로 제거가 주어질 때 각 농장이 계속 relevant였던 마지막 갱신 번호를 구한다.
난이도

어려움10점 중 8점

유형
유니온 파인드, 그래프, DFS, 분할 정복
정답자
아직 제출이 없습니다

문제

Farmer John은 NN개의 농장을 운영한다 (1≤N≤1051\le N\le 10^5). 농장에는 1…N1\ldots N의 번호가 붙어 있다. 처음에는 농장 사이를 잇는 도로가 하나도 없고, 모든 농장이 우유를 생산하고 있다.

경제 상황이 변하기 때문에 Farmer John은 QQ개의 업데이트 연산 (0≤Q≤2⋅1050\le Q\le 2\cdot 10^5)을 순서대로 수행해야 한다. 업데이트 연산은 다음 세 가지 형태 중 하나이다.

  • (D x) 활성 상태인 농장 xx를 비활성화한다. 그러면 xx는 더 이상 우유를 생산하지 않는다.
  • (A x y) 활성 상태인 두 농장 xx와 yy 사이에 도로를 추가한다.
  • (R e) 이전에 추가된 ee번째 도로를 제거한다 (e=1e = 1은 처음 추가된 도로이다).

우유를 생산하고 있거나, 도로를 따라 이동해 다른 활성 농장에 도달할 수 있는 농장 xx를 "관련 있는" 농장이라고 한다. 각 농장 xx에 대해, ii번째 업데이트 이후 xx가 관련 있는 최대 ii (0≤i≤Q0\le i\le Q)를 구하시오.

입력

첫째 줄에 NN과 QQ가 주어진다. 다음 QQ개의 줄에는 다음 형태 중 하나의 업데이트가 주어진다.

D x
A x y
R e

R 형태의 업데이트에서 ee는 지금까지 추가된 도로의 개수 이하이고, 두 R 형태 업데이트가 같은 ee 값을 갖지 않음이 보장된다.

출력

NN개의 줄을 출력한다. 각 줄에는 0…Q0\ldots Q 범위의 정수를 하나씩 출력한다.

힌트

이 예제에서 도로는 (2,3),(1,2),(2,4)(2,3), (1,2), (2,4) 순서로 제거된다.

  • 농장 11은 (1,2)(1,2)가 제거되기 직전까지 관련 있다.
  • 농장 22는 (2,4)(2,4)가 제거되기 직전까지 관련 있다.
  • 농장 33은 (2,3)(2,3)이 제거되기 직전까지 관련 있다.
  • 농장 44와 55는 모든 질의 이후에도 활성 상태이다. 따라서 둘 다 계속 관련 있고, 둘의 출력은 QQ이다.

예제1

  1. 예제 1

    입력
    5 9
    A 1 2
    A 2 3
    D 1
    D 3
    A 2 4
    D 2
    R 2
    R 1
    R 3
    
    예상 출력
    7
    8
    6
    9
    9