60006 택배 운송 Diamond V

시간 제한: 3초 메모리 제한: 2048MB

문제

2050년, 택배 최적화 연구소(KOI, Kurier Optimization Institute)는 전국 규모의 로봇 기반 택배 운송망을 구축하였다.

전국에는 11부터 NN까지의 번호가 붙은 NN개의 물류센터가 N1N − 1개의 도로로 연결되어 있다. 각 도로에는 11부터 N1N − 1까지의 번호가 붙어 있으며, 이 중 ii (1iN11 ≤ i ≤ N − 1)번 도로는 UiU_i번 물류센터와 ViV_i번 물류센터를 두 끝점으로 하고, 길이가 WiW_i인 선분이다. 한 물류센터에서 다른 어떤 물류센터로도 하나 이상의 도로를 거쳐 도달할 수 있다. 즉, 택배 운송망은 물류센터가 도로를 통해 연결된 트리 구조이다. 또한, 서로 다른 두 도로는 양 끝점을 제외한 어떤 점에서도 만나지 않는다.

각 물류센터 및 각 도로 위의 임의의 점을 모두 하나의 지점이라고 하자. 물류센터와 도로의 구조가 트리이므로, 서로 다른 두 지점 사이에는 반드시 유일한 단순 경로가 존재한다. 두 지점 xx, yy 사이의 거리 d(x,y)d(x, y)를 “지점 xx에서 지점 yy로 가는 단순 경로를 따라 이동할 때 거쳐야 하는 도로의 총 길이”로 정의하자. 단, x=yx = y이면 d(x,y)=0d(x, y) = 0이다.

일부 물류센터에는 전파 범위가 주어진 로봇이 배치된다. 전파 범위가 XX인 로봇의 초기 위치가 지점 pp라면, 이 로봇은 조건 d(p,z)Xd(p, z) ≤ X를 충족하는 모든 지점 zz 사이를 자유롭게 왕복하며 이동할 수 있고, 자신이 이동 가능한 범위 내의 임의의 지점에서 택배를 들어올리거나 내려놓을 수 있다.

당신은 연구소의 책임자로서, 처음에 11번 물류센터에 있는 택배를 NN번 물류센터까지 운송할 수 있을지 판단하려고 한다. 로봇들은 서로 협력하여 택배를 운송할 수 있다. 즉, 한 로봇이 어느 지점에 택배를 내려놓으면 다른 로봇이 바로 그 지점에서 다시 택배를 들어올려 운송을 계속할 수 있다.

당신은 총 QQ개의 시나리오에 대해, 로봇이 서로 협력하여 11번 물류센터에 있는 택배를 NN번 물류센터까지 운송할 수 있을지 판단하여야 한다. jj (1jQ1 ≤ j ≤ Q)번째 시나리오의 형식은 다음과 같다.

  • 11 AjA_j BjB_j: jj번째 시나리오는 j1j − 1번째 시나리오의 상황에서, 초기 위치가 AjA_j번 물류센터이고 전파 범위가 BjB_j인 로봇 하나가 추가된 상황이다.
  • 22 CjC_j: jj번째 시나리오는 j1j − 1번째 시나리오의 상황에서, CjC_j번째 시나리오에서 새로 추가된 로봇을 제거한 상황이다. CjC_j번째 시나리오는 로봇을 새로 추가하는 시나리오임이 보장된다.

단, 00번째 시나리오는 초기에 아무 로봇도 배치되지 않은 상황으로 간주한다.

각 시나리오에 대하여, 로봇이 서로 협력하여 11번 물류센터에 있는 택배를 NN번 물류센터까지 운송할 수 있는지 판단하는 프로그램을 작성하라.

입력

첫째 줄에 두 정수 NN, QQ가 공백을 사이에 두고 주어진다.

다음 N1N − 1개의 줄에는 도로의 정보가 주어진다. 이 중 ii (1iN11 ≤ i ≤ N − 1)번째 줄에는 세 정수 UiU_i, ViV_i, WiW_i가 공백을 사이에 두고 주어진다.

다음 QQ개의 줄에는 시나리오의 정보가 주어진다. 이 중 jj (1jQ1 ≤ j ≤ Q)번째 줄에는 jj번째 시나리오에 대한 정보가 지문에 제시된 형식대로 주어진다.

출력

QQ개의 줄을 출력한다. jj (1jQ1 ≤ j ≤ Q)번째 줄에는 jj번째 시나리오에서 택배 운송이 가능하다면 YES를, 불가능하다면 NO를 출력한다.

제한

  • 주어지는 모든 수는 정수이다.
  • 2N2000002 ≤ N ≤ 200\, 000
  • 1Q2000001 ≤ Q ≤ 200\, 000
  • 1iN11 ≤ i ≤ N − 1인 각 ii에 대하여, 1Ui,ViN1 ≤ U_i , V_i ≤ N이고 1Wi1091 ≤ W_i ≤ 10^9
  • 운송망은 연결되어 있다.
  • 1jQ1 ≤ j ≤ Q인 각 jj에 대하여:
    • jj번째 시나리오가 로봇을 새로 추가하는 시나리오라면, 1AjN1 ≤ A_j ≤ N이고 1Bj10151 ≤ B_j ≤ 10^{15}이다.
  • jj번째 시나리오가 로봇을 제거하는 시나리오라면, 1Cjj11 ≤ C_j ≤ j − 1이고 CjC_j번째 시나리오는 로봇을 새로 추가하는 시나리오이다. 같은 로봇이 22회 이상 제거되지 않는다.

서브태스크

번호배점제한
18N100N ≤ 100. Q6Q ≤ 6. 1iN11 ≤ i ≤ N − 1인 각 ii에 대하여, Wi10W_i ≤ 10이다.
2131iN11 ≤ i ≤ N − 1인 각 ii에 대하여, Ui=iU_i = i이고 Vi=i+1V_i = i + 1이다. 또한, N,Q2500N, Q ≤ 2\, 500이다.
325N,Q2500N, Q ≤ 2\, 500
4271iN11 ≤ i ≤ N − 1인 각 ii에 대하여, Ui=iU_i = i이고 Vi=i+1V_i = i + 1이다.
530모든 시나리오는 로봇을 새로 추가하는 시나리오이다.
6261iN11 ≤ i ≤ N − 1인 각 ii에 대하여, Wi=1W_i = 1. 1jQ1 ≤ j ≤ Q인 각 jj에 대하여, jj번째 시나리오가 로봇을 새로 추가하는 시나리오라면, Bj10B_j ≤ 10이다.
721추가 제약 조건 없음

힌트

예제 1 설명

여덟 번째 시나리오를 생각하자. 총 여덟 개의 로봇이 배치되어 있다. 택배의 가능한 운송 방법 중 하나는 다음과 같다.

  1. 11번 물류센터에 있는 유일한 로봇은 전파 범위가 44이다. 이 로봇이 11번 물류센터에서 택배를 들고 33번 물류센터에 내려놓는다.
  2. 22번 물류센터에 있는 유일한 로봇은 전파 범위가 1212이다. 이 로봇이 33번 물류센터로 이동해 택배를 들어올리고, 33번 물류센터에서 44번 물류센터로 가는 도로에서 33번 물류센터와 11만큼 떨어진 위치에 내려놓는다.
  3. 88번 물류센터에 있는 유일한 로봇은 전파 범위가 88이다. 이 로봇이 33번 물류센터에서 44번 물류센터로 가는 도로에서 33번 물류센터와 11만큼 떨어진 위치로 이동해 택배를 들어올리고, 44번 물류센터에서 55번 물류센터로 가는 도로에서 44번 물류센터와 33만큼 떨어진 위치에 내려놓는다.
  4. 1010번 물류센터에 있는 유일한 로봇은 전파 범위가 99이다. 이 로봇이 44번 물류센터에서 55번 물류센터로 가는 도로에서 44번 물류센터와 33만큼 떨어진 위치로 이동해 택배를 들어올리고, 1111번 물류센터에 내려놓는다.

택배를 운송할 수 있으므로 YES를 출력해야 한다.

열 번째 시나리오를 생각하자. 총 여섯 개의 로봇이 배치되어 있다. 초기에 11번 물류센터에 놓여 있는 택배를 들어올릴 수 있는 로봇이 없으므로, 택배를 운송할 수 없다. 따라서 NO를 출력해야 한다.

예제 입출력

예제 입력 1
11 10
1 3 3
2 3 10
3 4 5
4 5 8
9 6 4
4 7 2
7 8 2
5 9 1
9 10 2
5 11 3
1 1 4
1 2 12
1 6 6
1 7 1
1 8 8
1 9 6
1 10 9
1 11 2
2 7
2 1
예제 출력 1
NO
NO
NO
NO
NO
YES
YES
YES
YES
NO

출처

올림피아드 한국정보올림피아드 KOI 2025 1차 고등부 3번
solution.cpp
에디터 불러오는 중...