만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

우유 방문

시간 제한2초메모리 제한512 MB

요약
각 정점에 소의 종류가 있는 트리에서, A에서 B로 가는 경로 위에 종류가 C인 소가 있는지 묻는 M개의 질의에 답한다.
난이도

보통10점 중 7점

유형
트리, DFS, 누적 합, 이분 탐색
정답자
아직 제출이 없습니다

문제

Farmer John은 NN (1≤N≤1051 \leq N \leq 10^5)개의 농장을 N−1N-1개의 도로로 연결해 트리를 이루려 한다. 모든 농장은 서로 오갈 수 있고 사이클은 없다. 각 농장에는 11 이상 NN 이하의 정수 타입 TiT_i를 가진 소가 한 마리씩 있다.

Farmer John에게는 MM (1≤M≤1051 \leq M \leq 10^5)명의 친구가 자주 방문한다. 친구 ii가 방문하면 Farmer John은 그 친구와 함께 농장 AiA_i에서 농장 BiB_i로 가는 유일한 경로를 따라 걷는다. Ai=BiA_i = B_i일 수도 있다. 걷는 동안 경로 위의 어떤 소의 우유든 맛볼 수 있다. Farmer John의 친구 대부분은 농부이기도 해서 우유에 대한 취향이 확고하다. 각 친구는 특정 타입의 소에서 나온 우유만 마신다. 친구는 방문 중에 자기가 좋아하는 타입의 우유를 마실 수 있을 때만 만족한다.

각 친구가 방문 후 만족하는지 판별하라.

입력

첫째 줄에 정수 NN과 MM이 주어진다.

둘째 줄에 NN개의 정수 T1,T2,…,TNT_1, T_2, \ldots, T_N이 공백으로 구분되어 주어진다. ii번째 농장에 있는 소의 타입은 TiT_i다.

다음 N−1N-1개의 줄에는 서로 다른 두 정수 XX와 YY (1≤X,Y≤N1 \leq X, Y \leq N)가 주어지며, 농장 XX와 YY 사이에 도로가 있음을 나타낸다.

다음 MM개의 줄에는 정수 AiA_i, BiB_i, CiC_i가 주어진다. AiA_i와 BiB_i는 친구 ii의 방문에서 걷는 경로의 양 끝이고, CiC_i (1≤Ci≤N1 \le C_i \le N)는 그 친구가 마시고 싶어하는 우유를 내는 소의 타입이다.

출력

길이 MM의 이진 문자열을 출력한다. ii번째 문자가 '1'이면 ii번째 친구가 만족하고, '0'이면 그렇지 않다.

예제2

  1. 예제 1

    입력
    5 5
    1 1 2 1 2
    1 2
    2 3
    2 4
    1 5
    1 4 1
    1 4 2
    1 3 2
    1 3 1
    5 5 1
    
    예상 출력
    10110
    
  2. 예제 2

    입력
    6 4
    1 2 3 3 3 3
    1 2
    2 3
    3 4
    2 5
    5 6
    4 6 1
    4 6 2
    4 6 3
    4 6 4
    
    예상 출력
    0110