아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Артефакты (Basic)

면접 대비

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

요약
각 정점에 0, 1, 2 중 하나의 유물 종류가 적힌 트리에서 모든 종류를 모으는 최소 걷기 길이를 시작점과 끝점을 자유롭게 골라 구한다.
난이도

보통10점 중 6점

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

문제

Рик и Морти обнаружили в другом измерении карту планеты, на которой изображены nn пунктов раскопок, соединенных тропинками. Тропинка с номером ii соединяет пункты с номерами u_iu\_i и v_iv\_i и имеет длину 11.

Разумеется, Рик сразу заметил, что количество тропинок равняется в точности n−1n - 1, и из любого пункта можно добраться до любого другого. Иными словами, структура дорог и пунктов представляет из себя дерево, но для Морти это определение слишком сложное, поэтому Рик оставил Морти изучать теорию графов, а сам отправился исследовать это измерение.

Инопланетный информатор сообщил ему, что всего существует k⩽2k \leqslant 2 видов артефактов, и в пункте номер ii хранится артефакт вида a_ia\_i. Так очень удачно совпало, что у Рика очередное соревнование с одним из известных расхитителей космических гробниц, и для победы Рику нужно собрать по одному экземпляру каждого из видов артефактов.

Одной из проблем является то, что внутри этого измерения не работают никакие продвинутые технологии. Поэтому Рик может заранее создать порталы в запланированных стартовом и конечном пункте маршрута, а вот остальной маршрут придется пройти пешком. Чтобы сэкономить свое время, Рик хочет заранее выбрать стартовый пункт, конечный пункт и сам путь (не обязательно простой) так, чтобы пройденное им расстояние было минимальным, и при этом на пути он бы собрал все различные виды артефактов.

Рик, конечно, и сам может справиться с поиском такого кратчашего пути, но, может быть, у вас есть время заняться этим, пока он собирает всю необходимую для путешествия экипировку?

입력

В первой строке через пробел даны два целых числа nn и kk (2⩽n⩽1052 \leqslant n \leqslant 10^5; 1⩽k⩽21 \leqslant k \leqslant 2) --- количество пунктов и необходимое количество артефактов.

В следующей строке через пробел даны nn целых чисел a_ia\_i --- виды артефактов в каждом пункте (0⩽a_i⩽k0 \leqslant a\_i \leqslant k). В случае, если a_i=0a\_i = 0, считается, что в вершине не хранится никакой из видов артефактов.

В следующих n−1n - 1 строках даны пары целых чисел u_iu\_i и v_iv\_i, обозначающие наличие тропинки между пунктами u_iu\_i и v_iv\_i (1⩽u_i,v_i⩽n1 \leqslant u\_i, v\_i \leqslant n). Гарантируется, что структура графа представляет из себя дерево.

출력

В случае, если невозможно собрать kk различных видов артефактов выведите −1-1, иначе сообщите минимальное расстояние, которое придется пройти, чтобы собрать все виды артефактов.

힌트

В первом примере можно стартовый портал поставить в вершину 11, конечный в вершине 33. Для сбора всех видов артефактов нужно будет пройти ровно по одному ребру.

Во втором примере можно стартовый портал поставить в любую вершину с первым артефактом. И так как всего существует один тип, то его сразу соберут.

В третьем примере можно стартовый портал поставить в вершину 22, конечный в вершине 33. Для сбора всех видов артефактов нужно будет пройти ровно 2 ребра.

예제3

  1. 예제 1

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

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

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