문제
블록 놀이를 하던 준원이는 길이의 합이 X인 두 개의 블록이 필요하다. 그런데 문제는 블록이 너무 많다는 것이다. 찾다가 지친 준원이는 울음이 터지기 직전이다.
준원이가 원하는 블록을 찾아 준원이를 달래주자.
입력
입력은 몇 개의 테스트 케이스로 입력되며 입력의 끝은 파일의 끝이다.
각 테스트 케이스의 구성은 아래와 같다.
첫 행에 준원이가 필요로 하는 블록의 길이를 나타내는 정수 X가 센티미터 단위로 입력된다. (1 <= X <= 20)
다음 행에 블록의 개수 N이 입력된다. ( 0 <= N <= 1,000,000)
다음 N개의 행에 블록의 길이 Li가 나노미터(10억분의 1미터) 단위로 입력된다.
(1 <= Li <= 100,000,000)
* 파일의 끝까지 입력받는 방법 예
while( scanf(“%d”, &N) != EOF ){
.........;
}
출력
준원이가 원하는 블록 두 개를 찾은 경우 아래 예와 같이 yes L1 L2 형식으로 출력한다.
찾은 결과가 두 개 이상인 경우 두 블록의 차가 가장 큰 블록을 출력한다.
찾을 수 없는 경우 'danger' 를 출력한다.
예제
1
4
9999998
1
2
9999999
yes 1 9999999
출처
NWERC 2012 J번