#P3012. A Number from Yanghui Triangle

    ID: 2013 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>数论POJ Monthly--2006.09.29KimChan Min (kcm1700@POJ)

A Number from Yanghui Triangle

题目描述

杨辉三角(又称帕斯卡三角)是一个数字三角形,其数字按交错行排列,满足以下性质:

an,0=1a_{n,0} = 1n0n \geq 0
an,n=1a_{n,n} = 1n0n \geq 0
an,r=an1,r1+an1,ra_{n,r} = a_{n-1,r-1} + a_{n-1,r}0<r<n0 < r < n

考虑一个十进制数pp,它由杨辉三角第nn行的数字按顺序拼接而成,其中每个数字用kk位十进制表示(不足kk位时补前导零),且满足对于所有0rn0 \leq r \leq nlog10an,r<k\log_{10}a_{n,r} < k。以下是一些示例:

nn kk pp
0 1
3 2 01030301
5 010510100501

由于pp的数值可能非常大,你的任务是计算pmodmp \mod m,其中mm为给定的整数。

输入格式

输入包含TT个测试用例。第一行为测试用例数量TT。每个测试用例占一行,包含三个整数nnkkmm0n10000000 \leq n \leq 1\,000\,0001k10000001 \leq k \leq 1\,000\,0002m1092 \leq m \leq 10^9)。

输出格式

对于每个测试用例,输出pmodmp \mod m,每个结果占一行。

输入样例 1

3
0 2 7
2 2 12345
5 2 1000000

输出样例 1

1
10201 
100501

提示

由于输入规模较大,建议使用更快的输入输出方法。

题目来源

POJ Monthly--2006.09.29, Kim, Chan Min (kcm1700@POJ)