| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 6 초 | 512 MB | 74 | 24 | 15 | 28.846% |
진주 나들이를 온 보선이는 나들이를 끝내고 원래 살던 곳인 서울로 돌아가려고 진주 개양터미널에 도착했다. 그런데 이게 무슨 일인가? 장난꾸러기인 버스 기사분들이 전부 숨어버리거나 사라져버렸다. 숨은 장소 $N$곳에 대한 힌트만 남겨 놓은 채….
개양터미널 매표원 수현이는 난처해졌지만 잘생긴 얼굴 하나만 믿고, 보선이한테 버스 기사분들을 꼭 찾아서 각 버스에 배정해 달라고 부탁을 했다. 보선이는 '돌아가는 교통편을 무료로 이용할 수 있겠지?'라는 마음으로 수현이의 부탁을 들어주기로 했다. 그와 동시에 자기가 돌아가는 교통편의 버스에 가장 실력이 좋은 버스 기사를 배정해야겠다고 다짐했다.
버스 기사의 운전 실력은 0ドル$ 이상 50ドル$ 이하의 정수로 표현할 수 있으며, 운전 실력의 수치가 높을수록 실력이 좋다. 또한 버스 기사분들이 숨은 곳을 버스 기사 집합지라고 부르며, 총 $N$곳이 있다.
어떠한 구간 $[A, B]$가 주어지고 구간 내에서 우수한 버스 기사 집합지를 찾고자 할 때, 다음과 같이 찾을 수 있다.
또한, 어떠한 구간 $[A, B]$가 주어지고 구간 내에서 저조한 버스 기사 집합지를 찾고자 할 때, 다음과 같이 찾을 수 있다.
따라서, 구간 $[A, B]$ 내에서 우수한 버스 기사 집합지와 저조한 버스 기사 집합지는 동일할 수 있다.
위와 같이 버스 기사와 버스 기사 집합지에 대한 정보를 얻은 보선이는 일이 수월할 것이라고 믿었지만, 장난꾸러기인 버스 기사분들은 한 곳에 가만히 있지 않는다. 갑자기 알 수 없는 곳으로 사라지기도 하고, 갑자기 나타날 수도 있으며, 다른 집합지로 이동할 수도 있다. 다행히 개양터미널에서 보낸 정보원 우근이 덕분에 버스 기사분들의 이동 정보를 쉽게 알 수 있었지만, 보선이는 점점 귀찮아져서 우리한테 대신 부탁을 해왔다.
이동 정보의 개수나 우수한 버스 기사 집합지 및 저조한 버스 기사 집합지를 알아내야 하는 횟수, 즉 모든 쿼리의 개수는 총 $Q$개다. 이를 우리가 대신 처리해 보자.
첫 번째 줄에는 버스 기사 집합지의 개수 $N$이 주어진다. $(1 ≤ N ≤ 200,000円)$
두 번째 줄부터 $N$개의 줄에 걸쳐 $i$번째 버스 기사 집합지에 있는 버스 기사의 수 $M_i$와 버스 기사의 운전 실력 $L_1,ドル $\dots,ドル $L_{M_i}$가 공백으로 구분되어 주어진다. 각 줄에 주어지는 $L_j$은 중복되지 않는다. $(1 ≤ M_i ≤ 50; 0 ≤ L_j ≤ 50)$
2ドル+N$번째 줄에는 쿼리의 개수 $Q$가 주어진다. $(1 ≤ Q ≤ 200,000円)$
3ドル+N$번째 줄부터 $Q$개의 줄에 걸쳐 쿼리가 한 줄에 하나씩 주어진다. 각 쿼리는 다음과 같다.
-1을 출력한다. $(1 ≤ A ≤ B ≤ N)$-1을 출력한다. $(1 ≤ A ≤ B ≤ N)$-1을 출력한다. $(1 ≤ A ≤ B ≤ N)$모든 쿼리는 주어지는 순서대로 한 번에 하나씩 진행되며, 출력을 요구하는 쿼리는 한 번 이상 주어진다. 그리고 입력으로 주어지는 모든 수는 정수이다.
5, 6, 7번 쿼리에 대해 알맞은 정답을 한 줄에 하나씩 출력한다.
4 1 0 1 1 1 2 1 3 8 5 1 4 1 1 3 2 1 4 6 1 4 2 3 4 1 3 7 1 4 3 1 3 1 4 5 4 2 4 7 1 2
0 1 2 4 0 1 4 4 5
[표 1] 처음에 주어지는 버스 기사 집합지 $N$개의 상태
$N$개의 버스 기사 집합지에는 각각 운전 실력이 0ドル,ドル 1ドル,ドル 2ドル,ドル 3ドル$인 버스 기사 1ドル$명씩 있다. 현재 모든 버스 기사 집합지 중에서 저조한 버스 기사 집합지는 첫 번째 버스 기사 집합지다.
[표 2] 쿼리 1ドル$ 1ドル$ 3ドル$ 2ドル$ 1ドル$ 4ドル$ 직후 버스 기사 집합지 $N$개의 상태
1ドル$번째부터 3ドル$번째까지 버스 기사 집합지에 운전 실력이 1ドル,ドル 4ドル$인 버스 기사 1ドル$명씩 추가된다. 현재 1ドル$번째부터 $N$번째까지 버스 기사 집합지 중에서 우수한 버스 기사 집합지는 세 번째 버스 기사 집합지다.
[표 3] 쿼리 2ドル$ 3ドル$ 4ドル$ 1ドル$ 3ドル$ 직후 버스 기사 집합지 $N$개의 상태
3ドル$번째부터 4ドル$번째까지 버스 기사 집합지에서 운전 실력이 3ドル$이 아닌 버스 기사는 전부 사라진다. 전체 버스 기사 집합지 중에서 저조한 버스 기사 집합지는 세 번째 버스 기사 집합지다. 이 버스 기사 집합지가 7ドル$번 쿼리 조건하에 전체 버스 기사 집합지 중에서 우수한 버스 기사 집합지가 되려면 운전 실력이 0ドル,ドル 1ドル,ドル 4ドル$인 버스 기사 1ドル$명씩 추가되어야 한다.
[표 4] 쿼리 3ドル$ 1ドル$ 3ドル$ 1ドル$ 4ドル$ 5ドル$ 직후 버스 기사 집합지 $N$개의 상태
첫 번째 버스 기사 집합지에서 운전 실력이 1ドル,ドル 4ドル,ドル 5ドル$에 포함되지 않는 버스 기사는 전부 사라지고, 운전 실력이 1ドル,ドル 4ドル,ドル 5ドル$에 대해 각 운전 실력을 가진 버스 기사가 없으면 1ドル$명씩 추가된다.
[표 5] 쿼리 4ドル$ 2ドル$ 4ドル$ 직후 버스 기사 집합지 $N$개의 상태
두 번째 버스 기사 집합지에 있는 버스 기사 전체와 네 번째 버스 기사 집합지에 있는 버스 기사 전체가 서로 바뀐다. 현재 1ドル$번째부터 2ドル$번째까지 버스 기사 집합지 중에서 저조한 버스 기사 집합지는 두 번째 버스 기사 집합지다. 이 버스 기사 집합지가 7ドル$번 쿼리 조건하에 1ドル$번째부터 2ドル$번째까지 버스 기사 집합지 중에서 우수한 버스 기사 집합지가 되려면 운전 실력이 4ドル,ドル 5ドル$인 버스 기사 1ドル$명씩 추가되어야 한다.
Python 3 사용자는 PyPy3로 제출할 것을 권장한다.
Contest > BOJ User Contest > 나들이 > 첫 번째 나들이 K번