제트 열차
시간 제한2초메모리 제한512 MB
친구 관계와 열차 노선이 계속 추가되는 상황에서, 각 질의마다 v의 친구 중 v와 같은 연결 성분에 속한 도시의 수를 구한다.
문제
3019년이다. 인류는 이제 비행선과 제트 엔진으로 대기 중에 떠 있는 도시에서 살고 있다. 행성에는 개의 도시가 있고, 이 도시들은 제트 열차 네트워크로 연결되어 있다. 도시 와 가 열차 노선으로 연결되어 있으면 사람들은 두 도시 사이를 양방향으로 이동할 수 있다. 도시 에서 도시 에 도달할 수 있다는 것은 와 사이에 경로가 존재한다는 뜻이며, 경로의 각 간선은 열차 노선을 나타낸다.
3019년의 사람들은 친구 맺기를 좋아해서, 같은 도시 사람들은 공통 친구가 많다. 친구 관계는 사람 쌍이 아니라 도시 쌍을 연결한다고 하자. 두 도시의 친구 관계는 상호적이다.
때때로 어떤 도시 사람들이 축제를 열고 친구 도시의 사람들을 모두 초대하기로 한다. 축제가 도시 에서 열린다고 발표되면, 의 친구 도시에 사는 모든 사람이 제트 열차 네트워크를 이용해 로 가려고 한다. 의 친구 도시 중 에 도달할 수 있는 도시의 사람들이 축제에 참가한다.
특정 축제에 참가하는 사람 수를 계산하는 "Celebration 3019"라는 시스템을 만들기로 했다. 친구인 도시 쌍에 대한 정보와 제트 열차 네트워크의 현재 상태가 주어진다. 시스템은 "축제가 도시 에서 열린다면 몇 개 도시의 사람들이 참가하는가?"라는 요청을 처리해야 한다. 또한 새로운 친구 도시 쌍과 새로운 제트 열차 노선에 대한 정보를 추가하는 기능도 있어야 한다. 다행히 열차 노선은 취소되지 않고, 한 번 친구가 된 도시는 영원히 친구로 남는다.
인류가 이런 시스템을 개발하도록 도와주자.
입력
첫째 줄에 세 정수 , , 가 주어진다. 각각 도시 수, 친구 도시 쌍 수, 제트 열차 노선 수이다 (, ).
다음 개 줄에는 두 정수 와 가 주어진다 (, ). 친구 도시 쌍이다. 각 쌍은 최대 한 번만 주어진다.
다음 개 줄에는 두 정수 , 가 주어진다 (, ). 제트 열차 노선으로 연결된 도시 쌍이다. 각 도시 쌍 사이에는 노선이 최대 하나이다.
다음 줄에는 정수 가 주어진다 (). 처리할 요청 수이며, 다음 개 줄에 요청이 주어진다.
- 요청 "
T"는 이제 와 사이에 제트 열차 노선이 생겼다는 뜻이다 (, ). 요청 전에 와 사이에 직접 노선이 없음이 보장된다. - 요청 "
F"는 이제 와 가 친구라는 뜻이다 (, ). 요청 전에 와 가 친구가 아니었음이 보장된다. - 요청 "
?"는 시스템에 대한 질문이다. "축제가 도시 에서 열린다면 몇 개 도시의 사람들이 참가하는가?" ()
출력
각 "? " 요청마다 답을 새 줄에 출력한다.
힌트
첫 번째 요청의 답은 1이다. 도시 중 도시 로 가는 열차 노선이 있는 도시가 하나뿐이기 때문이다.
두 번째 요청의 답은 2이다. 요청 전에 도시 과 가 친구가 되었고, 두 도시를 잇는 열차 노선이 있었기 때문이다.
세 번째 요청의 답은 3이다. 이제 열차 네트워크를 이용해 도시 에서 도시 로 이동할 수 있기 때문이다. 먼저 도시 로 간 다음 도시 로 갈 수 있다.