바위와 나무

시간 제한1초메모리 제한128 MB

요약
루트 있는 트리의 루트가 아닌 정점에 돌이 놓여 있고, 두 사람이 번갈아 한 정점에서 부모로 최대 L개의 돌을 옮긴다. 각 갱신 후 선공의 승패를 판정한다.
난이도

어려움10점 중 8점

유형
게임 이론, 트리, 수학, 구현
정답자
아직 제출이 없습니다

문제

My country's bigger than most
And if asked I boast
'Cause I'm really proud
So I shout it loud
Though our numbers are few
We will welcome you

Although we don't have history
Gold medal winning teams
Heroes or prisoners
World famous volcanoes
Still what we've got's glorious

'Cause we've got
Rocks and trees
And trees and rocks
And rocks and trees
And trees and rocks
And rocks and trees
And trees and rocks
And rocks and trees
And trees and rocks
And water
             -The Arrogant Worms, on Canada

http://www.youtube.com/watch?v=P2Ca-vTapfU

바위와 나무의 땅 캐나다로, 북위 49도선을 넘어 이주한 뒤 Farmer John의 소들은 목초지에서 여가를 보낼 놀이를 하나 만들었습니다. 당연히 그 놀이에는 바위와 나무가 등장하지요! 카우보이 테드(Ted)는 이 놀이를 무척 좋아하지만, 운이 너무 없어서 다른 소들에게 늘 지고 맙니다. 이번에는 당신에게 도움을 청합니다.

규칙은 간단합니다. 놀이는 노드가 NN개(2≤N≤100002 \le N \le 10000)이고 11번부터 NN번까지 번호가 매겨진 트리 위에서 진행되며, 노드들은 N−1N-1개의 가지로 연결되어 있습니다. 노드 11번이 루트입니다. 11번을 제외한 모든 노드 ii는 부모 PiP_i를 가지며 1≤Pi<i1 \le P_i < i를 만족합니다. 처음에 루트가 아닌 각 노드에는 바위가 얼마간 놓여 있습니다(루트에는 바위가 없습니다). 즉 루트가 아닌 노드 ii는 정확히 RiR_i개의 바위로 시작합니다(1≤Ri≤10001 \le R_i \le 1000).

두 사람이 번갈아 차례를 진행하며 테드가 먼저 시작합니다. 자기 차례에 현재 플레이어는 루트가 아닌 노드 ii를 하나 고른 뒤, 그 노드에서 부모 노드(루트에 한 가지 더 가까운 노드)로 바위를 최대 LL개(1≤L≤10001 \le L \le 1000)까지 옮깁니다. 반드시 바위를 하나 이상 옮겨야 하고, 그 노드에 현재 놓인 바위 수보다 많이 옮길 수는 없습니다. 어떤 플레이어가 더 이상 합법적인 이동을 할 수 없게 되면(모든 바위가 노드 11번에 모이면) 놀이가 끝나고, 그 플레이어가 집니다.

테드는 당신에게 처음 배치를 알려준 다음, TT번(1≤T≤100001 \le T \le 10000)의 변경을 하나씩 적용합니다. 각 변경은 두 정수 AjA_j(1<Aj≤N1 < A_j \le N)와 BjB_j(1≤Bj≤10001 \le B_j \le 1000)로 주어지며, 노드 AjA_j의 바위 수를 BjB_j로 설정합니다(더하거나 빼는 것이 아니라 값을 그대로 맞추는 것입니다). 변경은 누적됩니다. 즉 노드 AjA_j는 그 노드에 대한 또 다른 변경이 나올 때까지 바위 BjB_j개를 유지합니다. 각 변경 이후, 두 사람이 모두 최선의 전략으로 둔다고 가정할 때, 그 배치에서 먼저 두는 테드가 이길 수 있는지 판정하세요.

예를 들어 Board 0과 같은 모양의 노드 세 개를 생각해 봅시다. 처음에는 노드 2에 바위 5개, 노드 3에 바위 3개가 있습니다(Board 1). 첫 번째 변경은 노드 2를 바위 3개로 설정합니다(Board 2). 두 번째 변경은 노드 3을 바위 1개로 설정하며, 노드 2는 여전히 바위 3개를 가집니다(Board 3).

     1            -         -         -
    / \          / \       / \       / \
   2   3        5   3     3   3     3   1

  Board 0      Board 1   Board 2   Board 3

입력

  • 첫째 줄: 공백으로 구분된 세 정수 NN, TT, LL.
  • 22번째 줄부터 NN번째 줄까지: ii번째 줄에는 공백으로 구분된 두 정수 PiP_i와 RiR_i가 주어집니다.
  • N+1N+1번째 줄부터 N+TN+T번째 줄까지: j+Nj+N번째 줄은 jj번째 변경을 공백으로 구분된 두 정수 AjA_j와 BjB_j로 나타냅니다.

출력

  • TT개의 줄을 출력합니다. ii번째 줄에는 ii번째 변경 이후 테드가 이길 수 있으면 Yes를, 그렇지 않으면 No를 출력합니다.

예제1

  1. 예제 1

    입력
    3 2 10
    1 5
    1 3
    2 3
    3 1
    
    예상 출력
    No
    Yes