[HNOI2011]数学作业
题号:NC20090
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

小 C 数学成绩优异,于是老师给小 C 留了一道非常难的数学作业题:
给定正整数 N 和 M ,要求计算Concatenate(1..N) Mod M 的值,其中 Concatenate (1 .. N)是将所有正整数1,2,,N 顺序连接起来得到的数。例如,N = 13Concatenate(1..N)=12345678910111213 .小C 想了大半天终于意识到这是一道不可能手算出来的题目,于是他只好向你求助,希望你能编写一个程序帮他解决这个问题。

输入描述:

从文件input.txt中读入数据,输入文件只有一行且为用空格隔开的两个正整数N和M,其中30%的数据满足1≤N≤1000000 ;100%的数据满足1≤N≤1018 且1≤M≤109.

输出描述:

输出文件 output.txt 仅包含一个非负整数,表示 Concatenate (1 .. N)Mod M 的值。
示例1

输入

复制
13 13

输出

复制
4