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.

给你一个大小为 nn 的数组 aa,以及 qq 个对该数组的查询。查询分为两种类型:

  • 1 l_i r_i —— 对区间 [li, ri][l_i,\,r_i] 执行一次向右的循环移位。即,对每个满足 li≤x<ril_i \le x < r_i 的 xx,将 ax+1a_{x+1} 的新值设为 axa_x 的旧值,同时将 alia_{l_i} 的新值设为 aria_{r_i} 的旧值;
  • 2 l_i r_i —— 将区间 [li, ri][l_i,\,r_i] 翻转。

数组中有 mm 个重要下标:b1,b2,…,bmb_1, b_2, \dots, b_m。对每个满足 1≤i≤m1 \le i \le m 的 ii,你需要输出在执行完所有查询后,位于下标 bib_i 处的数值。

输入格式

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.

第一行包含三个整数 nn、qq 和 mm(1 ≤ n, q ≤ 2⋅1051 ≤ n, q ≤ 2·10^5,1 ≤ m ≤ 1001 ≤ m ≤ 100)。

第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \dots, a_n(1 ≤ ai ≤ 1091 ≤ a_i ≤ 10^9)。

接下来是 qq 行。其中第 ii 行包含三个整数 tit_i、lil_i、rir_i,其中 tit_i 表示第 ii 个查询的类型,[li, ri][l_i, r_i] 是该查询作用的区间(1 ≤ ti ≤ 21 ≤ t_i ≤ 2,1 ≤ li ≤ ri ≤ n1 ≤ l_i ≤ r_i ≤ n)。

最后一行包含 mm 个整数 b1,b2,…,bmb_1, b_2, \dots, b_m(1 ≤ bi ≤ n1 ≤ b_i ≤ 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测评打分。不知道怎么写?

首页