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

Added by:Nguyen Dinh Tu
Date:2006-11-01
Time limit:1s
Source limit:5000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: ERL JS-RHINO NODEJS PERL6 VB.NET

hide comments
2017-11-14 17:37:04
can someone help in testcase 9 it is showing TLE i have also used scanf and printf instead of cin & cout.
2017-11-06 20:10:01
Took a day to solve it. Not an easy one. My first in Segment Trees.
2017-10-30 05:28:52
forgot to put "\n" ._. hahah
2017-10-09 08:35:26
Finally did it ::)
2017-10-05 22:46:24
my first in segment tree!
2017-10-02 16:15:27
@admin I think you must add JAVA in the list of unsupported languages as well
2017-10-02 13:41:52
@swas99 I managed to use Fast IO keeping the source limit<5000B but the time limit is too strict for java
2017-09-30 14:56:43
can anyone help me with testcase 9? :( I don't know why its failing
2017-09-28 20:02:27
@ kaushal101 always take the value in leaf node not max(0,A[L])
2017-09-28 02:05:24
Finally solved it :) :) Feels good, use scanf , printf , cin and cout will not work even on using sync_with_stdio(false), will have to implement segment trees using pointers as array implementation would be complicated and memory consuming , finally don't give up, its a beautiful problem on segment trees will teach you a lot.
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.