트리 숨기기
시간 제한2초메모리 제한512 MB
변경 가능한 정점의 번호를 다시 붙여 n과 모든 간선 끝점 번호의 XOR이 0이 되게 하는 문제입니다. 방법이 없으면 -1을 출력합니다.
문제
XOR 스캐너는 정수 수열을 검사하는 장치다. 수열에 있는 모든 수의 비트 XOR 값이 일 때에만 수열을 통과시킨다.
정점이 개인 트리가 있고, 각 정점에는 1부터 까지의 정수 번호가 붙어 있다. 이 트리를 다음 표준 형식으로 적어야 한다.
여기서 은 정점의 수이고, 와 는 번째 간선이 잇는 두 정점이다.
XOR 스캐너가 이 출력을 통과시키기를 원한다. 처음에는 통과하지 않을 수 있으므로, 일부 정점의 번호를 바꿀 수 있다. 번호를 바꾼 뒤에는 모든 정점의 번호가 1 이상 이하의 서로 다른 정수여야 한다.
각 정점마다 번호를 바꿀 수 있는지가 정해져 있다. 번호를 바꿀 수 있는 정점의 번호를 다시 정해서(원래 번호를 그대로 둘 수도 있다) XOR 스캐너가 출력을 통과시키게 하라. 불가능하면 그렇다고 보고하라.
입력
첫 줄에 정점의 수 ()이 주어진다.
다음 줄에는 개의 정수가 주어진다. 번째 수가 이면 번 정점의 번호가 고정되어 있고, 이면 바꿀 수 있다.
이어지는 개의 줄에는 간선의 양 끝점 , ()가 한 줄에 하나씩 주어진다.
출력
번호를 다시 붙인 트리가 존재하면, 문제의 형식과 같은 형식으로 출력하라. 간선의 순서와 각 간선의 양 끝점 순서는 입력과 같아야 한다. 출력하는 모든 수의 비트 XOR 값은 이어야 한다.
불가능하면 -1 한 개만 출력하라.