만드는 중입니다

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

유연한 피쿠스

면접 대비

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

요약
노드 값 F_i가 주어진 트리에서 연결된 노드 k개 이상을 남기고, 남긴 노드 값들의 AND가 최대가 되도록 구합니다.
난이도

보통10점 중 6점

유형
비트 연산, 그리디, 트리, DFS
정답자
아직 제출이 없습니다

문제

말나르 씨는 자신의 피쿠스를 보고 충분히 유연하지 않다고 판단했다. 피쿠스는 nn개의 노드로 이루어진 트리로 볼 수 있으며, 각 노드 ii는 유연성 FiF_i를 가진다. 말나르 씨는 트리가 연결된 상태를 유지하고 노드가 최소 kk개 남도록 일부 노드를 자른다. 트리의 유연성은 남은 모든 노드의 FiF_i에 대한 비트 AND로 정의된다. 그가 얻을 수 있는 최대 유연성은 얼마인가?

입력

첫 줄에는 트리의 노드 수 nn (1≤n≤1051 \le n \le 10^5)과 문제에 나온 kk (1≤k≤n1 \le k \le n)가 주어진다.

둘째 줄에는 nn개의 정수가 주어지며, ii번째 정수가 FiF_i이다 (0≤Fi<2300 \le F_i < 2^{30}).

다음 n−1n-1개 줄에는 uiu_i와 viv_i (1≤ui,vi≤n1 \le u_i, v_i \le n, ui≠viu_i \ne v_i)가 주어지며, 이는 노드 uiu_i와 viv_i가 간선으로 연결되어 있음을 뜻한다.

출력

말나르 씨가 얻을 수 있는 최대 유연성을 한 줄에 출력한다.

힌트

첫 번째 예제에서는 노드 5를 제거할 때 유연성이 최대가 된다.

예제2

  1. 예제 1

    입력
    5 4
    6 2 7 10 5
    1 2
    2 3
    2 4
    1 5
    
    예상 출력
    2
    
  2. 예제 2

    입력
    4 2
    3 1 3 2
    1 2
    2 3
    3 4
    
    예상 출력
    2