CF1705C.Mark and His Unfinished Essay
普及/提高-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
One night, Mark realized that there is an essay due tomorrow. He hasn't written anything yet, so Mark decided to randomly copy-paste substrings from the prompt to make the essay.
More formally, the prompt is a string s of initial length n. Mark will perform the copy-pasting operation c times. Each operation is described by two integers l and r, which means that Mark will append letters slsl+1…sr to the end of string s. Note that the length of s increases after this operation.
Of course, Mark needs to be able to see what has been written. After copying, Mark will ask q queries: given an integer k, determine the k-th letter of the final string s.
一天夜里,马克意识到明天有一篇论文要交。他至今一个字都没写,于是决定从题目提示中随机复制粘贴子串来完成这篇论文。
更准确地说,题目提示是一个初始长度为 n 的字符串 s。马克将执行 c 次复制粘贴操作。每次操作由两个整数 l 和 r 描述,表示马克将把子串 slsl+1…sr 追加到字符串 s 的末尾。注意:该操作会使 s 的长度增加。
当然,马克需要能查看已写入的内容。在所有复制操作完成后,马克会提出 q 个查询:对每个给定的整数 k,确定最终字符串 s 中第 k 个字符。
输入格式
The first line contains a single integer t (1≤t≤1000) — the number of test cases.
The first line of each test case contains three integers n, c, and q (1≤n≤2⋅105, 1≤c≤40, and 1≤q≤104) — the length of the initial string s, the number of copy-pasting operations, and the number of queries, respectively.
The second line of each test case contains a single string s of length n. It is guaranteed that s only contains lowercase English letters.
The following c lines describe the copy-pasting operation. Each line contains two integers l and r (1≤l≤r≤1018). It is also guaranteed that r does not exceed the current length of s.
The last q lines of each test case describe the queries. Each line contains a single integer k (1≤k≤1018). It is also guaranteed that k does not exceed the final length of s.
It is guaranteed that the sum of n and q across all test cases does not exceed 2⋅105 and 104, respectively.
第一行包含一个整数 t(1≤t≤1000)—— 表示测试用例的数量。
每个测试用例的第一行包含三个整数 n、c 和 q(1≤n≤2⋅105,1≤c≤40,1≤q≤104)—— 分别表示初始字符串 s 的长度、复制粘贴操作的次数以及查询的次数。
每个测试用例的第二行包含一个长度为 n 的字符串 s。保证 s 仅由小写英文字母组成。
接下来的 c 行描述复制粘贴操作。每行包含两个整数 l 和 r(1≤l≤r≤1018)。同时保证 r 不超过当前字符串 s 的长度。
每个测试用例的最后 q 行描述查询。每行包含一个整数 k(1≤k≤1018)。同时保证 k 不超过最终字符串 s 的长度。
保证所有测试用例中 n 的总和不超过 2⋅105,且 q 的总和不超过 104。
输出格式
For each query, print the k-th letter of the final string s.
对于每个查询,输出最终字符串 s 的第 k 个字母。
输入输出样例
输入#1
2 4 3 3 mark 1 4 5 7 3 8 1 10 12 7 3 3 creamii 2 3 3 4 2 9 9 11 12
输出#1
m a r e a r
说明/提示
In the first test case, the copy-paste process is as follows.
- The first step is pasting string mark at the end, yielding the string markmark.
- The second step is pasting string mar at the end, yielding the string markmarkmar.
- The third step is pasting string rkmark at the end, yielding the string markmarkmarrkmark.
In the second test case, the copy-paste process is as follows.
- The first step is pasting string re at the end, yielding the string creamiire.
- The second step is pasting string ea at the end, yielding the string creamiireea.
- The third step is pasting string reamiire at the end, yielding the string creamiireeareamiire.
在第一个测试用例中,复制-粘贴过程如下:
- 第一步:在末尾粘贴字符串 mark,得到字符串 markmark。
- 第二步:在末尾粘贴字符串 mar,得到字符串 markmarkmar。
- 第三步:在末尾粘贴字符串 rkmark,得到字符串 markmarkmarrkmark。
在第二个测试用例中,复制-粘贴过程如下:
- 第一步:在末尾粘贴字符串 re,得到字符串 creamiire。
- 第二步:在末尾粘贴字符串 ea,得到字符串 creamiireea。
- 第三步:在末尾粘贴字符串 reamiire,得到字符串 creamiireeareamiire。
输入解题思路,AI测评打分。不知道怎么写?