AT_abc448_e [ABC448E] Simple Division

题目描述

给定整数 $N$ 和 $M$。请计算 $\lfloor N/M \rfloor$ 除以 $\color{red}{10007}$ 的余数。 其中,$\lfloor x \rfloor$ 表示不超过 $x$ 的最大整数。例如,$\lfloor 3.14 \rfloor=3$,$\lfloor 10 \rfloor = 10$。 本题中,$N$ 并未直接给出,而是以行程编码(Run-Length Encoding)的方式输入: 具体地,$N$ 通过 $K$ 组数字 $c_i$ 和整数 $l_i$ 的序列表示。 恢复原始的 $N$ 的步骤如下: - 初始时,令字符串 $S$ 为空串。 - 对于 $i=1,2,\dots,K$,重复以下操作: - 在 $S$ 的末尾追加 $l_i$ 个数字 $c_i$。 - 最终,将 $S$ 作为一个整数解释,该整数就是 $N$。

输入格式

输入从标准输入读取,格式如下: > $K\ M\ c_1\ l_1\ c_2\ l_2\ \cdots\ c_K\ l_K$

输出格式

输出答案。

说明/提示

### 样例解释 1 本例输入中,$N=316227766$,$M=7$。 $\lfloor 316227766/7 \rfloor = 45175395$,将其对 $10007$ 取余后得到 $3797$,即为最终答案。 ### 数据范围 - $1 \le M \le 10^4$ - $1 \le K \le 10^5$ - $c_i$ 为数字 $0,1,2,3,4,5,6,7,8,9$ 中的一个 - $1 \le l_i \le 10^9$ - $c_1 \neq 0$ - $M,K,l_i$ 均为整数。 由 ChatGPT 5 翻译