GSS1 - Can you answer these queries I


You are given a sequence A[1], A[2], ..., A[N] . ( |A[i]| ≤ 15007 , 1 ≤ N ≤ 50000 ). A query is defined as follows:
Query(x,y) = Max { a[i]+a[i+1]+...+a[j] ; x ≤ i ≤ j ≤ y }.
Given M queries, your program must output the results of these queries.

Input

  • The first line of the input file contains the integer N.
  • In the second line, N numbers follow.
  • The third line contains the integer M.
  • M lines follow, where line i contains 2 numbers xi and yi.

Output

    Your program should output the results of the M queries, one query per line.

Example

Input:
3 
-1 2 3
1
1 2
Output:
2

hide comments
baadshah_: 2016-06-26 14:15:48

Finally AC took whole DAY!!

Deepak : 2016-06-18 17:27:55

finally AC..great problem for beginners.thanks @AbhishekRajput

ABHISHEK RAJPUT: 2016-06-01 20:55:49

for the one, who need right approach to the problem is::find what should be stored at each node of segment tree.
read prefix or suffix sums in a tree.

rahulpadhy: 2016-05-20 12:47:39

Last edit: 2016-06-03 04:24:04
oalieno: 2016-05-11 15:43:27

Did anyone use Treap to solve this problem?
I keep getting TLE using Treap...(sad...)

mars_ch: 2016-05-02 08:34:46

同意楼上!!

yousiki: 2016-05-01 05:38:06

TL is too strict

yousiki: 2016-05-01 02:39:43

Last edit: 2016-05-01 05:37:06
man: 2016-04-29 23:41:31

hell of a problem!! . confidence growing in segment trees

Gag: 2016-04-25 15:00:46

n<=500002


Added by:Nguyen Dinh Tu
Date:2006-11-01
Time limit:0.115s-0.230s
Source limit:5000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: ERL JS NODEJS PERL 6 VB.net