왕의 문제
시간 제한3초메모리 제한1024 MB
간선 가중치의 XOR을 이용하는 방향 그래프에서 a에서 b까지 모든 경로 XOR 값의 XOR을 구하거나, 무한히 많을 때 -1을 출력합니다.
문제
얼마 전 베를란디아에 새로운 도로망이 건설되었다. 일부 도시 쌍 사이에는 일방통행 도로가 있고, 번째 도로는 도시 에서 도시 로 향하며 길이는 이다. 베를란디아의 두 주요 도시는 번호가 와 이다.
베를란디아의 왕은 자기 나라를 매우 사랑해서 나라의 여러 특성을 계산하는 것을 좋아한다. 그는 경로에 있는 모든 도로 길이의 비트 XOR을 그 경로의 아름다움이라고 부른다. 그리고 도시 에서 도시 로 가는 모든 경로의 아름다움에 대한 비트 XOR을 나라의 아름다움이라고 부른다. 이러한 경로는 무한히 많을 수 있고, 같은 도시를 여러 번 지나갈 수도 있다는 점에 유의하라.
왕은 나라의 아름다움을 알고 싶어 한다. 계산할 수 있으면 그 값을 구하고, 계산할 수 없으면 그렇다고 보고하라.
집합의 비트 XOR은 집합에 있는 0이 아닌 모든 수의 비트 XOR이다. 0이 아닌 수가 무한히 많으면 그 비트 XOR은 계산할 수 없다.
비트 XOR(비트 단위 배타적 논리합)은 같은 자리에 있는 두 비트 쌍마다 논리 배타적 논리합을 적용하는 이항 연산이다. 대응하는 비트가 다르면 결과 비트는 1이고, 같으면 0이다. 예를 들어 , 이면 이다.
그래프에서 경로란, 연속한 두 정점이 간선으로 연결되어 있는 정점들의 나열이다.
입력
첫 줄에 테스트 케이스의 개수 ()가 주어진다.
각 테스트 케이스의 첫 줄에는 도시의 개수 과 도로의 개수 ()이 주어진다.
다음 개 줄에는 세 정수 , , (, )가 주어진다. 이는 번째 도로의 시작 도시, 끝 도시, 길이이다.
각 테스트 케이스의 마지막 줄에는 왕이 관심을 두는 경로의 시작 도시 와 끝 도시 ()가 주어진다.
모든 테스트 케이스에 대해 의 합은 을 넘지 않고, 의 합도 을 넘지 않는다.
출력
각 테스트 케이스마다 베를란디아의 아름다움을 정수 하나로 출력하라. 답이 존재하지 않으면 을 출력하라.
힌트
첫 번째 테스트 케이스에는 길이가 인 도로가 하나뿐이므로 어떤 경로의 아름다움도 이다. 따라서 모든 경로 아름다움의 비트 XOR도 이다.
두 번째 테스트 케이스에서 도시 1에서 도시 3으로 가는 경로는 6개이며, 아름다움은 , , , , , 이다. 따라서 나라의 아름다움은 이다.
세 번째 테스트 케이스에서 도시 1에서 도시 2로 가는 경로의 아름다움은 , , , 등으로 이어진다. 아름다움이 0이 아닌 경로가 무한히 많으므로 답은 계산할 수 없다.
네 번째 테스트 케이스에서 도시 2에서 도시 3으로 가는 아름다움이 인 경로는 무한히 많고, 아름다움이 0이 아닌 경로는 하나도 없다. 따라서 나라의 아름다움은 이다.