시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
2 초 128 MB 26 4 4 28.571%

문제

팰린드롬은 앞으로 읽으나 뒤로 읽으나 똑같은 숫자다. 그런데 꿍은 Nested 팰린드롬이라고 불리는 특별한 팰린드롬에 관심을 갖게 되었다. Nested 팰린드롬은 다음의 세가지 조건을 만족한다.

  • 숫자가 팰린드롬이어야 하며,
  • 숫자를 반으로 쪼갰을 때, 앞쪽의 절반 역시 Nested 팰린드롬 이어야한다. 만약 자리수가 홀수개라면, 정가운데에 있는 한 자리의 수는 무시해도 된다.
  • 또한 두개의 인접한 수는 같아서는 안 된다.

꿍은 Nested 팰린드롬을 하나 만들었으며, 맨 앞에 0이 오지 않는다. 그 다음, 몇몇 숫자를 "?"로 바꾸었다. 꿍은 ?를 숫자로 바꿔서 만들 수 있는 모든 Nested 팰린드롬 중에서 k번째 큰 수를 찾으려고 한다. 꿍이 쓴 숫자는 처음부터 Nested 팰린드롬이 아닐 수도 있다.

입력

각 테스트 케이스는 두 줄로 이루어진다. 첫번째 줄에는 k(1≤k≤1018)가 주어지며 두번째 줄에는 오직 0~9와 "?"로만 이루어진 길이가 1~10000인 미지의 팰린드롬이 주어진다. 입력의 마지막은 0 하나만 주어진다.

출력

각 테스트 케이스에 대해 각 줄에 꿍이 찾고있는 Nested 팰린드롬을 출력한다. 만약 가능한 팰린드롬이 없거나 주어진 미지의 팰린드롬이 Nested 팰린드롬이 될 수 없을 경우 -1을 출력한다. 

예제 입력

1
1?1
1
?3?
1
?1?
55
???
55
1?1
3
0?0
0

예제 출력

101
131
212
707
-1
-1

힌트

출처

ACM-ICPC > Regionals > North America > Southeast USA Regional > 2013 Southeast USA Regional Programming Contest B번

  • 문제의 오타를 찾은 사람: august14
  • 문제를 번역한 사람: seok9311