#769
Platinum III
이상한 함수
원문: English
시간 제한
2s
메모리 제한
1024MB
제출
0
정답
0
맞힌 사람
0
정답 비율
0.0%

문제

민용이는 모든 양의 정수 xx에 대하여 다음과 같이 정의된 함수 f(x)f(x)를 공부하고 있다.

  • 만약 xx의 자릿수 중 00이나 11이 아닌 숫자가 하나라도 있다면, xx의 각 자릿수에 대하여 홀수인 숫자는 11로, 짝수인 숫자는 00으로 바꾼 값을 반환한다.
  • 만약 xx의 모든 자릿수가 00 또는 11이라면, x1x-1을 반환한다.

양의 정수 xx (1x<1021051 \le x < 10^{2 \cdot 10^5})가 주어졌을 때, xx00이 될 때까지 함수 ff를 몇 번 적용해야 하는지 구하시오. 이 값은 매우 커질 수 있으므로, 109+710^9+7로 나눈 나머지를 출력한다.

입력

첫째 줄에 테스트 케이스의 개수 TT (1T1051 \le T \le 10^5)가 주어진다.

이어서 TT개의 줄에 각 테스트 케이스에 해당하는 양의 정수 xx가 주어진다. xx00에서 99 사이의 숫자로만 구성되어 있으며, 맨 앞자리에 00이 오는 경우는 없다.

모든 테스트 케이스에 주어지는 xx의 자릿수의 총합은 10610^6을 넘지 않는다.

출력

각 테스트 케이스마다 xx00이 되기 위해 ff를 적용해야 하는 횟수를 109+710^9+7로 나눈 나머지를 한 줄에 하나씩 출력한다.

예제 입력 1

2
24680
210

예제 출력 1

1
4

예제 입력 2

1
1234567890123456789012345678901234567890

예제 출력 2

511620083

제약 조건

  • 테스트 케이스 3~5: T2000T \le 2\,000, x<109x < 10^9
  • 테스트 케이스 6~7: x<1018x < 10^{18}
  • 테스트 케이스 8~9: x<1060x < 10^{60}
  • 테스트 케이스 10~12: 추가 제약 조건 없음.
코드 제출

코드를 제출하려면 로그인이 필요합니다.

로그인
내 제출
제출 내역이 없습니다.
맞은 사람
아직 맞은 사람이 없습니다.
난이도 투표
Platinum III1명 투표· 약 1개월 전
로그인 후 AC 받으면 투표할 수 있습니다.
전체 제출
제출 내역이 없습니다.