[BOJ 1060] 좋은 수
View as PDF
Submit solution
Assembly, Awk, C, C++, Java, Pascal, Perl, Python, Sed, Text
Points:
3
Time limit:
2.0s
Memory limit:
128M
Problem types
Allowed languages
정수 집합 S가 주어졌을때, 다음 조건을 만족하는 구간 [A, B]를 좋은 구간이라고 한다.</p>
- A와 B는 양의 정수이고, A < B를 만족한다.
- A ≤ x ≤ B를 만족하는 모든 정수 x가 집합 S에 속하지 않는다.
정수 x를 포함하는 좋은 구간의 개수가 정수 y를 포함하는 좋은 구간의 개수보다 작으면 x는 y보다 더 좋다고 한다. x와 y를 포함하는 좋은 구간의 개수가 같거나, 구간의 개수가 둘 다 무한대와 같은 경우, 작은 수를 더 좋다고 한다.
집합 S가 주어지고, 이를 이용해 전체 정수를 더 좋은 수가 앞으로 오게 정렬했다고 가정하자. 앞에 오는 수 n개를 구해보자.
입력 형식
첫째 줄에 집합 S의 크기 L이 주어진다. 둘째 줄에는 집합에 포함된 정수가 주어진다. 셋째 줄에는 n이 주어진다.
출력 형식
상위 N개의 수를 공백으로 구분해 출력한다.
예제 입력 1
1
3
6
예제 출력 1
3 1 2 4 5 6
예제 입력 2
3
5 11 18
9
예제 출력 2
5 11 18 1 4 6 10 2 3
예제 입력 3
3
7 13 18
9
예제 출력 3
7 13 18 14 17 8 12 1 6
예제 입력 4
5
1000 1004 4000 4003 5000
19
예제 출력 4
1000 1004 4000 4003 5000 4001 4002 1001 1003 1002 4004 4999 1 999 4005 4998 2 998 4006
예제 입력 5
1
1000000000
8
예제 출력 5
1000000000 1 999999999 2 999999998 3 999999997 4
Comments