本站作为LDUOnlineJudge的测试版本进行演示,官方网站请访问http://icpc.ldu.edu.cn
[Hidden]

1097. 数列分块入门 3


Description

给出一个长为 n  的数列,以及 n 个操作,操作涉及区间加法,询问区间内小于某个值 x 的前驱(比其小的最大元素)。

Input

第一行输入一个数字 n 。

第二行输入 n 个数字,第 i 个数字为 ai,以空格隔开。

接下来输入 n 行询问,每行输入四个数字opt、l、r、c,以空格隔开。

若opt=0,表示将位于[l,r]的之间的数字都加c。

若opt=1,表示询问[l,r]中c的前驱的值(不存在则输出-1)。

Output

对于每次询问,输出一行一个数字表示答案。

Samples

Input Copy
4
1 2 2 3
0 1 3 1
1 1 4 4
0 1 2 2
1 1 2 4
Output
3
-1

Hint

n<=100000, -231<=others, ans<=231-1

Source

loj.ac
Problem Information

Time Limit: 3000MS (C/C++,Others×2)
Memory Limit: 256MB (C/C++,Others×2)
Special Judge: No
AC/Submit: 2 / 4
Tags:
Contests involved

1012. 数列分块练习
My history solutions

You didn't submit any solution!
Submit your solution

Login Register