시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
2 초 | 128 MB | 87 | 6 | 6 | 85.714% |
어떤 배열 A가 주어졌을 때, 이 배열과 크기가 같고, 배열에 속하는 모든 원소 X가 low <= X <= high이며, 새로 바꾼 배열을 B라고 했을 때, A[i]와 B[i]의 비트 차이가 최소인 배열 B를 출력하는 프로그램을 작성하시오. 만약 B가 여러개일 경우에는 사전순으로 먼저오는 것을 출력한다.
어떤 수 a와 b의 비트 차이를 계산하는 방법은, a를 이진수로 바꾸고, b도 이진수로 바꾼다. 만약 두 수의 길이가 서로 다르다면, 길이가 같아질 때 까지 짧은 이진수의 왼쪽에 0으로 채운다. 그 뒤에 각자리의 비트가 차이나는 것의 개수를 채우면 된다.
첫째 줄에 A의 크기 N과 두 정수 low, high가 주어진다. 둘째 줄에는 배열 A의 원소 Ai가 공백으로 구분되어 주어진다.
첫째 줄에 배열 B의 원소를 공백을 사이에 두고 출력한다.
1 101 105 71
103
5 98 304 12 65 302 1 1000000
140 193 302 129 192
1 16 16 1000000
16
1 83 92 48
84
3 1 4 5 6 7
1 2 3