| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 2 초 | 1024 MB | 386 | 113 | 92 | 31.834% |
1,2,ドル\cdots,N$으로 번호가 매겨진 $N$개의 정점이 있다. 이때, 다음과 같은 쿼리를 수행하는 프로그램을 작성해보자.
1 u v: 정점 $u$와 $v$를 잇는 간선을 추가한다. 이때 $u,v$는 모두 삭제되지 않은 정점임이 보장되며 같은 간선은 최대 1번만 주어진다. $(1 \le u,v \le N)$2: 정점의 개수가 가장 많은 트리를 선택한다. 정점의 개수가 가장 많은 트리가 두 개 이상 존재할 경우에는 가장 번호가 작은 정점끼리 비교하여 번호가 더 작은 트리를 선택한다. 그 후 선택한 트리에서 가장 번호가 작은 정점의 번호를 출력하고, 그 트리의 간선과 정점을 모두 삭제한다.첫째 줄에 정점의 개수 $N,ドル 쿼리의 개수 $Q$가 공백으로 구분되어 주어진다. $(1 \le N \le 10^5$; 1ドル \le Q \le 10^5)$ 둘째 줄부터 $Q$개의 줄에 걸쳐 쿼리가 주어진다.
입력으로 주어지는 모든 수는 정수이다.
2번 쿼리가 주어질 때마다 트리에서 가장 번호가 작은 정점의 번호를 출력한다. 2번 쿼리는 최소 1개 주어지며, 트리가 없는데 2번 쿼리가 주어지는 경우는 없다.
3 3 1 3 2 1 2 1 2
1
3 3 2 2 2
1 2 3
정점이 1개, 간선이 0개여도 트리이다.
4 4 1 1 2 1 2 3 1 3 1 2
4
1,2,3ドル$번 노드는 상호 연결되어 더 이상 트리가 아니게 되었으므로, 2번 쿼리가 주어졌을 때 삭제된 트리에서 가장 번호가 작은 정점의 번호는 4ドル$이다.
7 7 1 1 2 1 2 3 1 3 1 1 4 5 1 5 6 1 1 4 2
7
University > 서울대학교 > 서울대학교 SCSC 프로그래밍 경시대회 > 2023 서울대학교 SCSC 프로그래밍 경시대회 > Contest F번
University > 서울대학교 > 서울대학교 SCSC 프로그래밍 경시대회 > 2023 서울대학교 SCSC 프로그래밍 경시대회 > Open Contest G번