운반원
시간 제한3.5초메모리 제한1024 MB
도시들이 트리로 연결되어 있고 상인들이 두 도시 사이를 왕복합니다. 경로를 추가하거나 삭제하며, 경로 위 도시에서 특정 시간 구간에 배송된 횟수를 셉니다.
문제
Pablo는 Wild West에서 가장 악명 높은 인물 중 하나로, 트리 구조를 이루는 도로로 연결된 개의 도시에 영향력을 행사한다. Pablo가 믿고 맡기는 부하들은 운반원이며, 쉬지 않고 물건을 나른다.
각 운반원은 도시 쌍 로 정해진다. 운반원은 시각 0에 도시 에서 출발해 최단 경로를 따라 로 간다. 정수 시각마다 운반원은 물건을 한 단위 배달하고 다음 도시로 이동한다. 운반원이 목적지 에 도착해 물건을 배달하면, 바로 다음 시각에 로 순간이동한다. 즉 시각 에 에서 배달했다면 시각 에는 에서 배달한다. 운반원들은 이 경로를 영원히 반복한다.
Pablo는 이 시스템을 개선할 여지가 있는지 알고 싶어 한다. 그래서 다음 세 종류의 질의를 수행한다.
- 1 u v: 사이를 오가는 운반원을 추가한다.
- 2 u v: 사이를 오가는 운반원을 제거한다. 해당 운반원이 존재함이 보장된다.
- 3 u v t1 t2: 현재 존재하는 모든 운반원이 시각 부터 까지(양 끝 포함) 와 사이 최단 경로 위의 모든 도시(양 끝 포함)에서 배달한 물건의 총 개수를 구한다.
입력
첫 줄에 도시의 수 이 주어진다. 이어서 개의 줄에 각각 두 정수 , 가 주어지며, 두 도시를 잇는 도로가 있음을 뜻한다.
다음 줄에 처음 존재하는 운반원의 수 가 주어진다. 이어서 개의 줄에 각각 두 수 , 가 주어지며, 해당 운반원의 경로를 나타낸다.
다음 줄에 질의의 수 가 주어진다. 이어서 개의 줄에 위에서 설명한 형식의 질의가 한 줄에 하나씩 주어진다.
출력
종류 3의 질의마다 답을 한 줄에 하나씩 출력한다.
제한
- 각 운반원의 경로는 양 끝을 포함해 최대 20개의 도시를 지난다.