Mind the Gap
면접 대비시간 제한2초메모리 제한512 MB
서로 다른 양의 정수 카드 n장이 주어질 때, 각자 자기 카드가 더미 맨 위 값보다 d 이하로 클 때만 내는 전략으로 어떤 동시 배치 순서에서도 카드를 오름차순으로 모두 내려놓을 수 있게 하는 정수 d를 찾는다.
문제
Mika는 친구들과 Mind 게임을 하고 있다.
이 게임은 카드로 진행되며, 각 카드에는 정수 하나가 적혀 있다. 카드에 적힌 값은 모두 서로 다르다. 플레이어들은 카드를 계속 내면서 테이블 위에 카드 더미 하나를 쌓는다. 처음에 더미에는 정수 이 적힌 카드 한 장이 있다. 각 플레이어는 부터 까지의 값이 적힌 카드 한 장씩 받는다. 그다음 플레이어들은 임의의 순서로 카드를 내기 시작한다. 플레이어가 카드를 내면 더미 맨 위에 카드를 놓는다. 목표는 카드 값이 아래에서 위로 갈수록 커지도록 모든 카드를 내는 것이다. 카드를 내지 못한 플레이어가 있거나 더미가 증가하지 않으면 플레이어들은 지고, 그렇지 않으면 이긴다. 카드를 나눠 준 뒤에는 플레이어들 사이에 어떤 의사소통도 허용되지 않는다.
Mika와 친구들은 전략을 하나 생각해 냈다. 게임 전에 정수 하나를 정한다. 게임 중에 플레이어의 카드 값이 이고 더미 맨 위의 값이 일 때, 이면 그 플레이어는 카드를 낸다. 이면 카드를 내지 않는다. 여러 플레이어가 동시에 카드를 내면 이 카드들은 어떤 순서로든 더미 맨 위에 놓일 수 있으며, 이 순서는 플레이어들이 제어할 수 없다.
플레이어들에게 나눠 줄 카드 값들이 주어진다. 플레이어들의 전략이 승리를 보장하도록 하는 정수 를 구하시오.
입력
첫째 줄에는 Mind 게임을 하는 플레이어 수 이 주어진다 ().
둘째 줄에는 플레이어들에게 나눠 줄 카드 값 개가 주어진다.
주어진 카드 값은 모두 서로 다르고 양수이며 를 넘지 않는다.
출력
Mika와 친구들이 이 전략으로 게임에서 승리를 보장하기 위해 사용해야 하는 정수 를 출력한다. 그러한 가 없으면 을 출력한다. 의 값이 여러 개라면 아무 것이나 출력한다.
힌트
첫 번째 예시에서 도 정답이 될 수 있다.