공정한 경기
면접 대비시간 제한2초메모리 제한1024 MB
각자 당구와 수영 실력 값을 가진 n명을 짝지어, 모든 팀의 두 종목 합계가 각각 같도록 나눌 수 있는지 판정한다.
문제
동료 Larry와 함께 소규모 회사의 동료들을 위한 빌리아드와 포켓볼 대회를 준비하고 있다. 너와 Larry는 대체로 생각이 같고, 그도 네 최신 아이디어를 분명히 반길 것이다. 동료들이 우승 상품으로 받을 멋진 상품도 준비했으니, 동료들도 너만큼 신나기를 바란다. 재미를 최대한 살리고 싶다.
따라서 일방적인 압승은 피하는 편이 좋다. 이는 어느 쪽에도 재미가 없기 때문이다. 고민 끝에, Larry에게 선수들을 둘씩 짝지어 팀으로 나누자고 제안하는 것이 좋겠다고 생각한다. 그러면 강한 선수를 약한 선수와 짝지어 실력을 상쇄할 수 있다. 사실 모든 팀의 실력이 정확히 같으면 완벽할 것이다! Larry에게 계획을 말하기 전에, 이것이 가능한지 먼저 알아보기로 한다.
너의 모델에서 시너지는 팀 실력에 거의 영향을 주지 않으며, 팀의 실력은 각 구성원 개인의 실력으로만 결정된다. 모든 동료는 빌리아드와 포켓볼 각각에서 특정 실력을 정수 두 개로 나타낸다. 두 동료가 팀을 이루면, 팀의 총 실력은 두 사람의 실력의 합이다. 모든 동료를 둘씩 짝지어, 모든 팀이 빌리아드와 포켓볼 모두에서 정확히 같은 실력을 갖도록 나눌 수 있는가?
입력
입력은 다음과 같다.
- 정수 ()이 있는 한 줄. 이는 동료의 수이다.
- 이어서 개의 줄이 주어지며, 각 줄에는 두 정수 와 ()가 있다. 이는 각 동료의 빌리아드 실력과 포켓볼 실력이다.
출력
모든 동료를 둘씩 짝지어 모든 팀이 같은 실력을 갖도록 나눌 수 있으면 possible을 출력한다. 그렇지 않으면 impossible을 출력한다.