페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#3038

블록 두 개 1s 32MB

문제

블록 놀이를 하던 준원이는 길이의 합이 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번
로그인해야 코드를 작성할 수 있어요.