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

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

방 번호

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

요약
n의 6과 9가 적힌 각 자리를 독립적으로 뒤집어 만들 수 있는 수 중 h 이하인 것의 개수를 9999997로 나눈 나머지를 구합니다.
난이도

보통10점 중 7점

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

문제

바이트 나라의 어느 호텔에 비밀 요원 피투시(Pituś)가 숨어 있습니다. 누군가 자신의 방 번호를 알아냈을까 걱정한 피투시는, 밤사이 방 번호에 적힌 숫자 가운데 일부 99를 66으로, 일부 66을 99로 몰래 뒤집어 놓았습니다.

피투시를 잡으러 온 요원 데이프(Dejf)는 피투시가 처음 배정받은 방 번호(뒤집기 전의 번호)와, 66과 99가 뒤집혔다는 사실까지 알아냈습니다. 하지만 어느 자리의 숫자가 실제로 뒤집혔는지는 알 수 없습니다. 그래서 피투시를 확실히 찾으려면 방을 몇 개나 확인해야 하는지 고민하고 있습니다.

원래 방 번호 nn에서 숫자가 66 또는 99인 자리는 각각 66과 99 중 어느 값으로도 바뀌어 있을 수 있고, 각 자리는 서로 독립적으로 정해집니다. 이렇게 만들 수 있는 서로 다른 방 번호 가운데, 호텔에 실제로 있는 방(번호가 11 이상 hh 이하)의 개수가 데이프가 확인해야 하는 방의 개수입니다.

호텔의 방 개수 hh와 원래 방 번호 nn이 주어질 때, 데이프가 확인해야 하는 방의 개수를 구하세요. 그 개수를 107−310^7 - 3으로 나눈 나머지를 출력하면 됩니다.

입력

첫째 줄에 호텔의 방 개수를 나타내는 정수 hh (1≤h≤1010000001 \le h \le 10^{1000000})가 주어집니다.

둘째 줄에 피투시가 처음 배정받은 방 번호를 나타내는 정수 nn (1≤n≤h1 \le n \le h)이 주어집니다.

hh와 nn은 앞에 00이 붙지 않은 십진수로 주어지며, 자릿수가 매우 클 수 있습니다.

출력

데이프가 확인해야 하는 방의 개수를 107−310^7 - 3으로 나눈 나머지를 한 줄에 출력하세요.

예제1

  1. 예제 1

    입력
    1000
    690
    
    예상 출력
    4