GSS3 - Can you answer these queries III


You are given a sequence A of N (N <= 50000) integers between -10000 and 10000. On this sequence you have to apply M (M <= 50000) operations:
modify the i-th element in the sequence or for given x y print max{Ai + Ai+1 + .. + Aj | x<=i<=j<=y }.

Input

The first line of input contains an integer N. The following line contains N integers, representing the sequence A1..AN.
The third line contains an integer M. The next M lines contain the operations in following form:
0 x y: modify Ax into y (|y|<=10000).
1 x y: print max{Ai + Ai+1 + .. + Aj | x<=i<=j<=y }.

Output

For each query, print an integer as the problem required.

Example

Input:
4
1 2 3 4
4
1 1 3
0 3 -3
1 2 4
1 3 3

Output:
6
4
-3

hide comments
nishchay: 2013-09-01 06:09:57

AC :D
Note: For Java Users, Using Split(" ") with BufferedReader resulting in NZEC, do take care not count any space or enter char that can come(I guess there are many and not single " ").

!!.Nginx.!!: 2013-05-16 13:42:07

how query: 1 2 4 giving output=4 shouldn't it be 3 (2+(-3)+4)

Alexander Maryanovsky: 2013-05-11 12:39:00

Please increase the source limit. Some languages are more verbose than others and it's ridiculous that I have to give all my variables a 1-character name just to fit a neat-looking implementation into 5k.

[deleted]: 2013-05-11 09:44:26

we have to use segmentation trees data structure in this problem :)

coding_express: 2013-05-08 07:35:47

please give hint how to reduce time

Sachith: 2013-04-18 13:09:47

look at the query case ... understand what the query means ...

luka lomtadze: 2013-03-19 17:19:10

What means "wrong answer #0"??

ginnipkj: 2013-03-11 07:25:11

atlast....

gourav: 2012-12-18 07:01:18

what does it mean ? "wrong #0" ?


Added by:Bin Jin
Date:2007-08-03
Time limit:0.330s
Source limit:5000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: CPP
Resource:own problem