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
PKJ: 2015-08-22 13:08:15

Note that the answer to a query could even be negative.

hnvahidi: 2015-08-12 01:35:48

i don't get it :|
why such a tight time limit ?
it will garbage all the theory behind problem due to such a constant decrease of time

lavish goel: 2015-07-31 12:34:26

Why I am getting TLE? :(
I used S.T.
My Program is in JAVA

Last edit: 2015-07-31 12:35:05
kejriwal: 2015-07-29 00:36:12

Nice one :) learnt something :D

Abhinav: 2015-07-27 12:36:09

@Utkarsh Gupta
It should work with cout if you use cin.tie(0); and std::ios::sync_with_stdio(false);

Rahul Jain: 2015-07-21 18:44:24

Amazingly nice question. Learnt a lot of things on how exactly to use segment trees for Range queries.

shravinson: 2015-07-19 20:49:48

why am i getting WA
<snip>

Last edit: 2022-08-17 17:27:11
harshit sharma: 2015-07-17 13:42:21

avoid use of cin ,cout

vabs: 2015-07-16 21:13:41

Awesome problem

Utkarsh Gupta: 2015-07-14 21:24:08

TLE with cout + fast input. AC with printf + fast input. Very strict time limit.


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