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
2021-06-20 19:39:52
Small hint: need to store more than 1 information in Segment Tree
2021-06-12 17:14:12
size of M?
2021-06-09 05:40:25
check this lecture from paska(cf-edu)
https://codeforces.com/edu/course/2/lesson/4/2
2021-06-05 11:39:18
Finally AC :-) . Good question...
2021-05-25 14:01:23
can it be solved using kadane's algorithm for each query
2021-05-14 14:53:25
can anyone provide me some extra test cases


Last edit: 2021-05-14 14:53:52
2021-05-09 12:49:42
This question is maximum sum on each subsegment. If you are stuck do refer cp-algorithms.
You just have to optimize it a little bit else there code and explanation is almost same.
And use -15008 instead of 0.
2021-04-26 15:11:03
wrong ans in 9th case
2021-03-03 10:12:02
Hard problem for beginners in segment tree.
2021-02-10 15:01:48
A good question, Also accepting java submission in given time
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.