은하의 지루한 행성 쌍
시간 제한1초메모리 제한64 MB
주어진 순서로 간선을 하나씩 제거하면서 경로 xor이 0인 행성 쌍 개수를 구합니다.
문제
아주 먼 옛날, 멀고 먼 은하에 행성 개가 있었다. 행성 사이에는 성간 항로 개가 있었고, 이 항로만으로 모든 행성이 직접 또는 간접으로 이어져 있었다. 즉, 행성과 항로는 트리를 이룬다. 각 항로에는 그 항로의 호기심을 나타내는 정수가 하나씩 붙어 있다.
두 행성 , 의 쌍이 다음 세 조건을 모두 만족하면 지루한 쌍이라고 한다.
- 와 는 서로 다른 행성이다.
- 항로를 하나 이상 지나 에서 로 갈 수 있다.
- 그 경로에 있는 모든 항로의 호기심을 비트 단위 XOR한 값이 이다.
쌍 와 쌍 는 같은 쌍으로 센다.
세월이 흘러 지금은 사악한 황제가 은하를 다스린다. 황제는 포스로 모든 항로를 정해진 순서대로 파괴하기로 했다. 파괴가 시작되기 전과 항로를 하나씩 파괴한 뒤마다 지루한 쌍이 몇 개인지 구하여라.
입력
첫째 줄에 행성의 수 이 주어진다. ()
다음 개 줄에는 항로 하나를 나타내는 정수 , , 가 공백으로 구분되어 주어진다. 이는 행성 와 행성 가 호기심이 인 항로로 직접 이어져 있다는 뜻이다. (, )
마지막 줄에는 부터 까지의 순열이 주어진다. 이 순열의 번째 값이 이면 황제는 번째 단계에서 번째로 입력된 항로를 파괴한다. 이면 이 줄에는 아무 수도 주어지지 않는다.
출력
개 줄을 출력한다. 번째 줄에는 항로를 정확히 개 파괴한 뒤 남은 지루한 쌍의 개수를 출력한다.
힌트
첫 번째 예제에서는 파괴 전에 행성 과 행성 의 쌍이 지루한 쌍이다. 항로가 파괴된 뒤에는 두 행성을 잇는 경로가 없다.
두 번째 예제에서는 파괴 전에 쌍 이 지루한 쌍이다. 첫 번째 파괴 뒤에도, 두 번째 파괴 뒤에도 행성 과 행성 사이를 오갈 수 없고, 남은 어떤 쌍도 지루한 쌍이 아니다.
세 번째 예제에서는 모든 항로의 호기심이 이므로, 경로가 남아 있는 모든 행성 쌍이 지루한 쌍이다.