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
ive1010: 2021-06-20 19:39:52

Small hint: need to store more than 1 information in Segment Tree

tropo_sphere: 2021-06-12 17:14:12

size of M?

loser_404: 2021-06-09 05:40:25

check this lecture from paska(cf-edu)
https://codeforces.com/edu/course/2/lesson/4/2

rimuru_404: 2021-06-05 11:39:18

Finally AC :-) . Good question...

csd_123: 2021-05-25 14:01:23

can it be solved using kadane's algorithm for each query

gupta_suraj143: 2021-05-14 14:53:25

can anyone provide me some extra test cases

Last edit: 2021-05-14 14:53:52
md__talha__007: 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.

gopinathsah24: 2021-04-26 15:11:03

wrong ans in 9th case

satyam_656: 2021-03-03 10:12:02

Hard problem for beginners in segment tree.

saurabh_kl: 2021-02-10 15:01:48

A good question, Also accepting java submission in given time


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