시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
2 초 | 128 MB | 66 | 19 | 14 | 28.571% |
민식이는 애들과 토론 중이다. 안타깝게 민식이의 남의 말을 제대로 알아듣지 못한다. 민식이 귀가 다른 사람이 한 말을 인식하는 방법은 다음과 같다. 일단 민식이는 다른 사람이 말한 말을 2진수로 바꾸어 듣는다. 그리고 다른 사람이 한 말의 i번째 비트는 민식이가 인식하는 이진수의 j번째 비트에 위치하게 되는데 항상 |j - i| ≤ D가 성립한다. 이렇게 만들어진 이진수로 민식이는 알아듣게 된다.
만약 다른 사람이 한 말이 0110이라면 민식이가 알아듣는 이진수의 후보는 0101, 0110, 1001, 1010으로 총 4가지이다.
문제는 다른 사람이 말하는 이진수와 정수 D, K가 주어지면 민식이가 알아듣는 이진수 후보의 개수와 이 후보들 중 K번째로 작은 이진수를 출력하는 문제이다.
첫 줄에는 이진수 비트의 개수 N(1 ≤ N ≤ 2,000)과 D(0 ≤ D < N), K(1 ≤ K ≤ 100,000,000)가 공백으로 구분되어 주어진다. 두 번째 줄에는 다른 사람이 말한 N비트의 2진수가 주어진다.
첫 줄에 민식이가 알아들을 것으로 예상되는 2진수의 총 후보의 개수를 100,000,000로 나눈 나머지를 출력한다. 다음 줄에는 이 이진수의 후보 중 K번째로 작은 2진수를 출력한다.
4 1 3 0110
4 1001
Olympiad > USA Computing Olympiad > 2008-2009 Season > USACO Holiday Bonus 2009 Contest > Gold 2번