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

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

A + B = C

시간 제한2초메모리 제한1024 MB

요약
자릿수가 n인 아름다운 수(연속한 두 자리가 다르고 첫 자리가 0이 아님) 두 개를 더해 주어진 n자리 수 C가 되는 순서쌍의 개수를 10^9+7로 나눈 나머지를 구한다.
난이도

보통10점 중 7점

유형
동적 계획법, 수학, 구현, 조합론
정답자
아직 제출이 없습니다

문제

정보 올림피아드의 연습 대회에서는 주어진 정수 AA와 BB의 합을 구하는 "A + B" 문제가 자주 출제된다.

시 정보 올림피아드를 준비하던 출제 위원장은 이런 문제의 테스트를 직접 만들기로 했다. 그는 독특한 방법을 사용했는데, 먼저 정답으로 삼을 값을 정하고 그 값에 맞는 입력을 만드는 것이었다.

위원장이 nn자리 십진수이고 맨 앞 자리가 0이 아닌 수 CC를 골랐다고 하자. 이제 그는 합이 CC가 되면서 각각 nn자리 십진수이고 맨 앞 자리가 0이 아닌 양의 정수 AA와 BB를 찾으려 한다. 게다가 위원장은 AA와 BB가 모두 아름다운 수가 되도록 하려 한다. 그가 생각하는 아름다운 수란, 같은 숫자가 연속으로 두 번 나오지 않는 수이다. 예를 들어 12721272는 아름다운 수이고 12271227은 아니다.

자연수 CC가 주어질 때, 합이 CC인 아름다운 양의 정수 쌍 A,BA, B의 개수를 구하는 프로그램을 작성하시오. 개수가 매우 클 수 있으므로 109+710^9+7로 나눈 나머지를 출력한다.

입력

입력 파일에는 양의 정수 CC가 하나 주어진다. CC는 0으로 시작하지 않는다. CC의 자릿수는 10 00010\,000을 넘지 않는다.

출력

출력 파일에는 아름다운 수 쌍 A,BA, B의 개수를 109+710^9+7로 나눈 나머지를 나타내는 정수 하나를 출력한다.

힌트

2222는 두 자리 수의 합으로 세 가지 방법으로 나타낼 수 있다: 10+1210 + 12, 11+1111 + 11, 12+1012 + 10. 11+1111 + 11은 1111이 아름다운 수가 아니므로 제외된다. 따라서 2222의 답은 22이다.

200200은 세 자리 수의 합으로 100+100100 + 100 한 가지 방법으로만 나타낼 수 있다. 이 방법은 조건에 맞지 않으므로 200200의 답은 00이다.

10001000은 네 자리 수의 합으로 나타낼 수 없으므로 10001000의 답도 00이다.

예제4

  1. 예제 1

    입력
    22
    
    예상 출력
    2
    
  2. 예제 2

    입력
    200
    
    예상 출력
    0
    
  3. 예제 3

    입력
    1000
    
    예상 출력
    0
    
  4. 예제 4

    입력
    239
    
    예상 출력
    16