아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

소수 회문 깃발

시간 제한1초메모리 제한128 MB

요약
n과 가운데 자리 숫자 c(없을 수도 있음)가 주어질 때, 소수인 회문이 하나라도 있으면 가장 큰 소수 회문을, 없으면 가장 큰 회문을 출력한다.
난이도

보통10점 중 6점

유형
수학, 정수론, 완전 탐색, 구현
정답자
아직 제출이 없습니다

문제

J 중학교의 운동회에서 각 반은 다음과 같은 반 대항 경기를 한다. 한 반은 남녀 대표 학생 nn쌍

(b1,g1), (b2,g2), …, (bn,gn)(b_1, g_1),\ (b_2, g_2),\ \dots,\ (b_n, g_n)

을 뽑는다. 각 학생은 00부터 99까지의 숫자가 적힌 깃발을 자유롭게 고르고(각 숫자의 깃발은 충분히 많다) 가로로 한 줄로 선다. 단, 한 쌍을 이루는 남학생과 여학생은 같은 숫자의 깃발을 들어야 하므로 gi=big_i = b_i이다. 서는 순서는

b1 b2 … bn  c  gn … g2 g1b_1\ b_2\ \dots\ b_n\ \ c\ \ g_n\ \dots\ g_2\ g_1

과 같이, 여학생들은 남학생들의 순서를 뒤집은 순서로 선다. 가운데 cc 자리에는, 심판장이 미리 지정한 숫자 cc의 깃발을 담임 선생님이 들고 서는 경우와, 서지 않도록 지정되는 경우가 있다.

이렇게 늘어선 깃발의 숫자들을 왼쪽부터 하나의 정수로 읽으면 2n2n자리(선생님이 없을 때) 또는 2n+12n+1자리(선생님이 있을 때)의 정수가 된다. 이 정수가 소수인 반이 이긴다. 두 반이 모두 소수이거나 모두 소수가 아니면, 정수가 더 큰 반이 이긴다. 또한 맨 앞에 00이 오는 것은 보통의 수 표기가 아니므로

0 b2 … bn c gn … g2 00\ b_2\ \dots\ b_n\ c\ g_n\ \dots\ g_2\ 0

또는

0 b2 … bn gn … g2 00\ b_2\ \dots\ b_n\ g_n\ \dots\ g_2\ 0

과 같은 배열은 금지된다. 따라서 b1≠0b_1 \neq 0이다.

gi=big_i = b_i이므로 늘어선 숫자는 회문 b1b2…bn [c] bn…b2b1b_1 b_2 \dots b_n\,[c]\,b_n \dots b_2 b_1이 된다. 당신의 반이 지지 않도록 하는 배열을 구하여라.

최적의 상대에 대해 지지 않는 배열은 유일하다. 소수인 회문이 하나라도 존재하면 그것은 가장 큰 소수 회문이고(소수는 항상 소수가 아닌 수를 이기며, 소수들 중에서는 가장 큰 것만이 지지 않는다), 그렇지 않으면 모든 회문이 소수가 아니므로 가장 큰 회문이다.

입력

첫 줄에 정수 nn과 한 자리 정수 cc가 공백 하나로 구분되어 주어진다. c<0c < 0이면 선생님은 가운데에 서지 않으며(이때 정수는 2n2n자리), 그렇지 않으면 선생님이 숫자 cc의 깃발을 들고 선다(정수는 2n+12n+1자리).

제약: 1≤n1 \le n이고 −9≤c≤9-9 \le c \le 9이다. 대부분의 경우 1≤n≤41 \le n \le 4이다.

출력

지지 않는 배열, 즉 늘어선 숫자를 하나의 정수로 읽은 값을 한 줄에 출력한다.

예제4

  1. 예제 1

    입력
    1 0
    
    예상 출력
    101
    
  2. 예제 2

    입력
    1 5
    
    예상 출력
    757
    
  3. 예제 3

    입력
    3 7
    
    예상 출력
    9957599
    
  4. 예제 4

    입력
    1 -1
    
    예상 출력
    11