거대한 정수!

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

요약
N개의 (숫자, 개수) 쌍이 주어질 때 각 숫자 A_i를 B_i번 이어 붙여 만든 거대한 수를 K로 나눈 나머지를 구한다.
난이도

보통10점 중 6점

유형
정수론, 수학, 분할 정복, 구현
정답자
아직 제출이 없습니다

문제

NN개의 정수 B1,B2,⋯ ,BNB_1, B_2, \cdots, B_N과 NN개의 수열 C1,C2,⋯ ,CNC_1, C_2, \cdots, C_N에 대하여, λ\lambda를 다음과 같이 정의하자.

λ=C1,1C1,2⋯C1,B1C2,1C2,2⋯C2,B2⋯⋯CN,1CN,2⋯CN,BN‾(10)\lambda = {\overline{C_{1,1} C_{1,2}\cdots C_{1,B_1} C_{2,1} C_{2,2} \cdots C_{2,B_2} \cdots\cdots C_{N,1} C_{N,2} \cdots C_{N,B_N}}}_{(10)}

1≤i≤N1 \le i \le N인 정수 ii에 대하여 Ci,1=Ci,2=⋯=Ci,Bi=AiC_{i,1} = C_{i,2} = \cdots = C_{i,B_i} = A_i일 때, λ\lambda를 KK로 나눈 나머지를 구하는 프로그램을 작성하시오.

입력

첫 번째 줄에 두 정수 NN과 KK가 공백을 두고 주어진다.

두 번째 줄부터 NN개의 줄에 걸쳐 AA와 BB의 정보가 주어진다.

(i+1)(i+1)번째 줄에는 두 정수 AiA_i와 BiB_i가 공백을 두고 주어진다 (1≤i≤N)(1 \le i \le N).

1≤i≤N1 \le i \le N인 정수 ii에 대하여 0≤Ai≤90 \le A_i \le 9와 1≤Bi≤10181 \le B_i \le 10^{18}을 만족한다.

모든 입력 데이터에 대하여 1≤N≤2×1061 \le N \le 2 \times 10^6와 1≤K≤5×1051 \le K \le 5 \times 10^5을 만족한다.

출력

첫 번째 줄에 λ\lambda를 KK로 나눈 나머지를 출력한다.

예제1

  1. 예제 1

    입력
    4 2
    0 1
    1 2
    2 1
    3 3
    
    예상 출력
    1