연결성 동치
시간 제한2초메모리 제한1024 MB
간선을 하나 추가하거나 삭제한 그래프가 이어지는 k개 버전을, 연결 성분 구성이 같은 것끼리 묶어 출력합니다.
문제
크기가 인 두 무방향 그래프가 연결성에서 동치라는 것은 모든 에 대하여 한 그래프에서 와 사이에 경로가 존재할 때, 그리고 그때에만 다른 그래프에서도 와 사이에 경로가 존재한다는 뜻이다.
개의 그래프 가 주어진다. 각 그래프의 크기는 이다. 이 수열에서 각 에 대하여 가 에서 간선 하나를 추가하거나 제거하여 얻어지는 가 존재한다. 주어진 그래프를 그룹으로 나누어, 두 그래프가 연결성에서 동치일 때, 그리고 그때에만 같은 그룹에 속하게 하라.
입력
여러 테스트 케이스가 주어진다. 입력의 첫 줄에는 테스트 케이스의 수 가 주어진다 (). 각 테스트 케이스는 다음과 같다.
첫 줄에는 세 정수 , , 이 주어진다 (, ). 는 그래프의 수, 은 각 그래프의 정점 수, 은 의 간선 수이다.
다음 개 줄 각각에는 두 정수 , 가 주어진다 (). 이는 에서 와 를 잇는 간선을 뜻한다. 에는 중복 간선이 없음이 보장된다.
다음 개 줄 중 번째 줄에는 정수 , 문자열 , 두 정수 , 이 주어진다 (, ). 은 add 또는 remove이다.
이 add이면 은 에 과 을 잇는 간선을 추가하여 얻어진다. 이 간선은 에 존재하지 않음이 보장된다.
이 remove이면 은 에서 과 을 잇는 간선을 제거하여 얻어진다. 이 간선은 에 존재함이 보장된다.
모든 테스트 케이스에서 의 합, 의 합, 의 합은 각각 을 넘지 않는다.
출력
각 테스트 케이스마다 다음을 출력한다.
첫 줄에 그룹의 수 을 출력한다.
각 그룹마다 한 줄에 그룹의 크기와 그룹에 속한 그래프의 번호를 출력한다. 즉, 그룹의 크기를 나타내는 정수 와 이어서 개의 정수를 공백으로 구분해 출력한다. 그룹의 순서와 각 그룹 안에서 그래프의 순서는 임의로 정해도 된다.