列表

详情


NC53240. 回转寿司

描述

题目译自 JOISC 2016 Day3 T2 「回転寿司
给出一个有N个点的环,环上各点有一个初始权值a_i
给出Q个询问,每次询问给出一个区间[l,r]和一个值A,对于A的变动定义如下(r可能会小于l因为是环形):
for(inti=l;i<=r;i++)if(a[i]>A)swap(a[i],A);

对于每个询问,回答遍历完区间[l,r]后A的最终值。
注:我们按逆时针方向在环上编号,并规定[l,r]为从位置编号为l的点逆时针遍历至位置编号为r的点所经过点的集合。

输入描述

第一行包括两个数N与Q表示环的大小和询问的个数;
之后的N行每行为一个整数,第i个为a_i
之后的Q行每行有三个整数l_ir_iA_i,表示如上所示。

输出描述

输出包括Q行,每行包括一个数,为变动结束后A_i的值。

示例1

输入:

6 7
8
6
7
4
5
9
2 4 5
4 1 4
6 2 7
1 5 2
3 4 8
4 3 1
3 1 3

输出:

7
9
8
7
8
6
5

说明:

第一回后,a数组长这样:8,5,6,4,5,9,此时A=7;
第二回后,a数组长这样:8,5,6,4,4,5,此时A=9;
第三回后,a数组长这样:7,5,6,4,4,5,此时A=8;
第四回后,a数组长这样:2,5,6,4,4,5,此时A=7;
第五回后,a数组长这样:2,5,6,4,4,5,此时A=8;
第六回后,a数组长这样:2,5,5,1,4,4,此时A=6;
第七回后,a数组长这样:2,5,3,1,4,4,此时A=5;

示例2

输入:

4 2
5
2
4
7
1 4 3
1 4 1

输出:

7
5

示例3

输入:

10 10
19
5
8
17
14
3
9
10
7
6
1 8 4
7 3 2
5 9 10
4 8 3
10 3 6
8 7 4
6 6 3
2 9 12
6 3 7
9 6 3

输出:

19
10
14
17
8
10
3
12
7
9

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

上一题