3412. Swaps and Sum

单点时限: 2.0 sec

内存限制: 256 MB

You are given a sequence a1,a2,,an. The task is to perform the following queries on it:

  • Type 1. Given two integers l and r . Reorder the elements of the sequence in such a way (changed part of the sequence is in brackets):
    a1,a2,,ana1,a2,,al2,al1,[al+1,al,al+3,al+2,,ar,ar1],ar+1,ar+2,,an
    That is swap the first two elements of segment [l,r], the second two elements, and so on.

  • Type 2. Given two integers l and r, print the value of sum i=lrai.

输入格式

The first line contains two integers n and q. The second line contains n integers a1,a2,,an, denoting initial sequence.

Each of the next q lines contains three integers tpi,li,ri, where tpi denotes the type of the query, and li are ri parameters of the query. It’s guaranteed that for a first-type query rl+1 will be even.

  • 2n2×105
  • 1q2×105
  • 1ai106
  • 1tpi2
  • 1lirin

输出格式

For each query of the second type print the required sum.

样例

Input
6 4
1 2 3 4 5 6
1 2 5
2 2 3
2 3 4
2 4 5
Output
5
7
9

1 人解决,5 人已尝试。

1 份提交通过,共有 7 份提交。

9.9 EMB 奖励。

创建: 7 年,5 月前.

修改: 7 年,5 月前.

最后提交: 1 年,8 月前.

来源: HackerRank

题目标签