CF863D.Yet Another Array Queries Problem
普及+/提高
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given an array a of size n, and q queries to it. There are queries of two types:
- 1 l__i r__i — perform a cyclic shift of the segment [l__i, r__i] to the right. That is, for every x such that l__i ≤ x < r__i new value of a__x + 1 becomes equal to old value of a__x, and new value of a__l__i becomes equal to old value of a__r__i;
- 2 l__i r__i — reverse the segment [l__i, r__i].
There are m important indices in the array _b_1, _b_2, ..., b__m. For each i such that 1 ≤ i ≤ m you have to output the number that will have index b__i in the array after all queries are performed.
给你一个大小为 n 的数组 a,以及 q 个对该数组的查询。查询分为两种类型:
1 l_i r_i—— 对区间 [li,ri] 执行一次向右的循环移位。即,对每个满足 li≤x<ri 的 x,将 ax+1 的新值设为 ax 的旧值,同时将 ali 的新值设为 ari 的旧值;2 l_i r_i—— 将区间 [li,ri] 翻转。
数组中有 m 个重要下标:b1,b2,…,bm。对每个满足 1≤i≤m 的 i,你需要输出在执行完所有查询后,位于下标 bi 处的数值。
输入格式
The first line contains three integer numbers n, q and m (1 ≤ n, q ≤ 2·105, 1 ≤ m ≤ 100).
The second line contains n integer numbers _a_1, _a_2, ..., a__n (1 ≤ a__i ≤ 109).
Then q lines follow. i-th of them contains three integer numbers t__i, l__i, r__i, where t__i is the type of i-th query, and [l__i, r__i] is the segment where this query is performed (1 ≤ t__i ≤ 2, 1 ≤ l__i ≤ r__i ≤ n).
The last line contains m integer numbers _b_1, _b_2, ..., b__m (1 ≤ b__i ≤ n) — important indices of the array.
第一行包含三个整数 n、q 和 m(1 ≤ n, q ≤ 2⋅105,1 ≤ m ≤ 100)。
第二行包含 n 个整数 a1,a2,…,an(1 ≤ ai ≤ 109)。
接下来是 q 行。其中第 i 行包含三个整数 ti、li、ri,其中 ti 表示第 i 个查询的类型,[li, ri] 是该查询作用的区间(1 ≤ ti ≤ 2,1 ≤ li ≤ ri ≤ n)。
最后一行包含 m 个整数 b1,b2,…,bm(1 ≤ bi ≤ n)—— 数组中的重要下标。
输出格式
Print m numbers, i-th of which is equal to the number at index b__i after all queries are done.
输出 m 个数,其中第 i 个数等于所有查询操作执行完毕后,数组中索引为 b__i 处的数值。
输入输出样例
输入#1
6 3 5 1 2 3 4 5 6 2 1 3 2 3 6 1 1 6 2 2 1 5 3
输出#1
3 3 1 5 2
输入解题思路,AI测评打分。不知道怎么写?