구간 모음
시간 제한3.5초메모리 제한512 MB
각 추가와 삭제 후, 공통 구간이 없는 구간 집합 중에서 가장 짧게 감싸는 구간의 길이를 구합니다.
문제
알티나는 구간 모음을 만들기 시작한다. 구간은 을 만족하는 양의 정수 두 개 이다. 구간의 길이는 이다. 구간 이 다른 구간 를 포함한다는 것은 이고 이라는 뜻이다. 모든 구간은 자기 자신을 포함한다.
공집합이 아닌 구간 집합 에 대해, 공통 구간은 의 모든 구간 에 포함되는 구간 전체이다. 공통 구간 집합이 공집합이 아니면, 의 최대 공통 구간은 공통 구간 중 길이가 가장 긴 구간이다.
같은 에 대해, 포괄 구간은 의 모든 구간 을 포함하는 구간 전체이다. 이 집합은 항상 공집합이 아니므로, 의 최소 포괄 구간은 포괄 구간 중 길이가 가장 짧은 구간이다.
처음에 알티나의 모음은 비어 있다. 알티나가 가진 구간을 바꾸는 사건이 번 일어난다.
첫 번째 종류의 사건은 알티나의 모음에 구간 을 추가한다. 같은 을 여러 번 추가할 수 있으며, 각각은 서로 다른 구간으로 취급한다.
두 번째 종류의 사건은 모음에 있는 구간 을 하나 제거한다. 같은 이 여러 개 있으면 그중 정확히 하나만 제거한다.
사건이 일어날 때마다 알티나는 자신이 가진 구간 중에서 공집합이 아닌 부분집합 를 고른다. 먼저 가능하다면 최대 공통 구간이 없는 를 고른다. 그것이 불가능하면 최대 공통 구간의 길이가 가장 작은 를 고른다. 이 조건을 만족하는 중에서는 최소 포괄 구간의 길이가 가장 작은 것을 고른다.
각 사건 후 알티나가 고른 의 최소 포괄 구간 길이를 구하라.
입력
첫째 줄에 ()가 주어진다. 이는 추가와 제거 연산의 전체 개수이다. 다음 개의 줄은 아래 형식 중 하나이다.
A: 구간 을 알티나의 모음에 추가한다.R: 구간 하나를 모음에서 제거한다. 제거할 구간은 반드시 존재하며, 제거한 뒤에도 모음은 공집합이 아니다.
모든 부분 문제에 대해 이다.
출력
개의 줄을 출력한다. 각 줄에는 해당 사건 후 알티나가 고른 의 최소 포괄 구간 길이를 출력한다.
힌트
를 추가하면 유효한 선택은 뿐이며, 최소 포괄 구간은 이다.
을 추가하면 의 최대 공통 구간은 이고, 최소 포괄 구간은 이다.
을 추가하면 의 최대 공통 구간은 이고, 최소 포괄 구간은 이다.
을 추가하면 에는 최대 공통 구간이 없고, 최소 포괄 구간은 이다. 도 최대 공통 구간이 없지만, 그 최소 포괄 구간 은 보다 길다.
을 제거하면 에는 최대 공통 구간이 없고, 최소 포괄 구간은 이다.