A72018. 贪吃巧克力(eat)
编程题
入门
知识点
题目描述
小可购买了一块长条状巧克力,共有 n 格,每一格巧克力美味度为 a_i。
某一天她的开心值为 p,幸运数为 x,当天剩余的 k 格巧克力美味度新编为 a_0, a_1, \dots, a_{k-1}, 小可可以计算出第 i 格巧克力的契合度 b_i 等于 a_i \times a_{(i+p)} \mod k。
注:上文中的 x \mod y 表示 x 除以 y 所得的余数,和 C 语言中的 x \% y 效果一致。
她打算从一端开始吃巧克力,直到吃掉契合度为 x 的格(如果没有这样的格,那就吃完整个巧克力)。但是她想少吃一点巧克力,于是她从第一天开始每天给你 p, x 你要回答她是从左边吃还是从右边吃更少,以及要吃多少个,或者报告巧克力被吃完了。如果从左边吃和从右边吃,所吃的格数一样,那小可可更愿意从左边吃。
输入格式
从文件 eat.in 读取数据。
- 第一行一个整数 C 表示测试点编号。对于样例 1 满足 C = 0。
- 第二行两个整数 n, m。
- 接下来一行 n 个整数用空格隔开,第 i 个数表示第 i 个巧克力的美味度 a_i。
- 接下来 m 行,每行两个非负整数 p, x,表示第 1 \sim m 天小可可以给你的 p, x。
保证小可可最早在第 m 天吃光巧克力。
输出格式
输出到文件 eat.out 中。
共 m 行,每行格式只可能为以下几种中的一种:
L: 表示从左边吃 x 格巧克力。R: 表示从右边吃 x 格巧克力。F: 表示吃完了。
输入输出样例
输入 #1
0 6 4 2 3 4 3 2 3 2 9 1 12 4 6 114 514
输出 #1
R 1 L 2 L 2 F
说明/提示
【样例 1 解释】

【样例 2 ~ 5】
见选手目录下的 eat/eat*.in 与 eat/eat*.ans。
样例中的 C 代表这组样例对应的实际测试点,其数据范围一致。
| 样例 | 2 | 3 | 4 | 5 |
|---|---|---|---|---|
| C | 1 | 2 | 7 | 9 |
【数据范围】
对于所有测试数据,均有:
- n, m, p \le 10^6
- x \le 10^{18}
- a_i \le 10^9
- 且都为非负整数
测试点信息
| 测试点 | n, m ≤ | 特殊性质 |
|---|---|---|
| 1 | 10 | 无 |
| 2 ~ 5 | 5 × 10^3 | 无 |
| 6 | 10^6 | A |
| 7, 8 | 10^6 | B |
| 9, 10 | 10^6 | 无 |
特殊性质说明
- 性质 A:所有 a_i 均相等
- 性质 B:每天均有 p = 0