해결한 사람
0
명
정답률
0.00
%
시간 제한
1000
ms
메모리 제한
245
MB
두 참가자에게 각각 1부터 9까지의 서로 다른 수 한 쌍이 주어지며, 두 쌍에 공통으로 들어 있는 수는 정확히 하나이다. 두 참가자는 당신도 접근할 수 있는 통신 채널을 사용하되 그 수를 당신에게 밝히지 않고, 일치하는 수를 알아내려고 한다.
두 참가자는 서로에게 수의 쌍들로 이루어진 집합을 전달했으며, 각 집합에는 자신에게 주어진 쌍이 포함되어 있다. 전달된 집합의 각 쌍은 서로 다른 두 수로 이루어진다.
공통된 수를 확실히 추론할 수 있는지, 아니면 두 참가자는 모두 그 수를 알지만 당신은 모른다는 사실을 확실히 판단할 수 있는지 알아낸다.
첫 번째 줄에 두 정수 n와 m (1 ≤ n, m ≤ 12)가 주어진다. 이는 첫 번째 참가자가 두 번째 참가자에게 전달한 쌍의 수와 그 반대 방향으로 전달한 쌍의 수이다.
두 번째 줄에 각각 1 이상 9 이하의 정수로 이루어진 n개의 쌍이 주어진다. 이는 첫 번째 참가자가 두 번째 참가자에게 전달한 수의 쌍들이다.
세 번째 줄에 각각 1 이상 9 이하의 정수로 이루어진 m개의 쌍이 주어진다. 이는 두 번째 참가자가 첫 번째 참가자에게 전달한 수의 쌍들이다.
각 집합 안의 모든 쌍은 서로 다르며(특히 (1,2)라는 쌍이 있다면 같은 집합 안에는 (2,1)이라는 쌍이 없다), 어느 쌍에도 같은 수가 두 번 들어 있지 않다.
두 집합이 문제의 조건과 모순되지 않음이 보장된다. 다시 말해, 첫 번째 집합의 어떤 쌍과 두 번째 집합의 어떤 쌍이 정확히 하나의 수를 공유한다.
공유하는 수를 확실히 추론할 수 있다면 그 수를 출력한다.
두 참가자 모두 공유하는 수를 안다는 사실은 확실히 추론할 수 있지만 당신은 그 수를 모른다면 0을 출력한다.
그 외의 경우에는 -1을 출력한다.
2 3
1 2 4 5
1 2 1 3 2 3
-12 2
1 2 3 4
1 5 3 4
12 2
1 2 3 4
1 5 6 4
0첫 번째 예제에서 첫 번째 참가자는 (1,2)와 (3,4)를 전달했고, 두 번째 참가자는 (1,5)와 (3,4)를 전달했다. 두 참가자가 실제로 받은 쌍은 정확히 하나의 수를 공유한다는 것을 알고 있으므로, 두 참가자가 모두 (3,4)를 받았을 수는 없다. 따라서 첫 번째 참가자는 (1,2)를, 두 번째 참가자는 (1,5)를 받았으며, 이 시점에 이미 공유하는 수가 1임을 알 수 있다.
두 번째 예제에서는 첫 번째 참가자가 (1,2)를 받고 두 번째 참가자가 (1,5)를 받았거나, 첫 번째 참가자가 (3,4)를 받고 두 번째 참가자가 (6,4)를 받았다. 첫 번째 경우에는 두 참가자 모두 공유하는 수가 1임을 알고, 두 번째 경우에는 두 참가자 모두 공유하는 수가 4임을 안다. 당신에게는 1과 4를 구별할 충분한 정보가 없다.
세 번째 경우 첫 번째 참가자에게 (1,2)가 주어졌다면, 그 참가자는 공유하는 수가 무엇인지 알지 못한다. 그 참가자의 관점에서는 두 번째 참가자에게 (1,3)이 주어져 공유하는 수가 1일 수도 있고, (2,3)이 주어져 공유하는 수가 2일 수도 있기 때문이다. 두 번째 참가자는 그 수를 확실히 알지만, 당신과 첫 번째 참가자는 모두 알지 못하므로 출력은 -1이다.