TopCoder

unknown
我比tourist還要強!!!

User's AC Ratio

100.0% (4/4)

Submission's AC Ratio

40.0% (4/10)

Tags

Description

頗旺很喜歡序列,他尤其喜歡玩一種很特別的序列,這種序列總共有$N$個數值$A_i$ ($i\in[1,N]$)。頗旺很喜歡很大的數,而且越大越好,因此,他很喜歡把數字加總,然而,頗旺發現有時候加一加數字反而會變小!這當然是由於加到負數的關係,因此,只要將所有非負的數值相加便能得到最大的數值,但,頗旺覺得這樣太不有趣了,所以,他決定只挑某個連續的部份$[L,R]$,則加總所有介於$[L,R]$間的數值,頗旺很好奇要挑選哪段連續的部份可以使得加總的數值最大,因此,頗旺就發明了最大連續和問題!

不過就在頗旺發明完後,頗旺瞬間就想到解法了,"這不就掃過去判一判,根本水題呀",因此,他決定要變得更有趣一點,他想知道對於某個區間$[QL,QR]$,滿足$QL \leq L \leq R \leq QR$中,哪段連續的部份可以使得加總的數值最大,頗旺三個小時快用完了,因此他決定先去睡個覺,在睡覺前頗旺問$Q$個問題,也就是問說當限定在$[QL_i,QR_i]$間時,所能獲得的最大值為何,哦對了,頗旺不喜歡負的數字,因為會讓數值加總變小,因此如果答案是負的,請回答0,別讓頗旺不開心。

Input Format

第一行有兩個正整數$N$、$Q$,表示序列的長度以及頗旺詢問的次數。

第二行有$N$個整數$A_i( i=[1,N] )$,表示序列$1 \sim N$的數值。

第$3 \sim Q+2$行分別有兩個正整數$QL_i$、$QR_i$,表示頗旺所詢問的區間

  • $N\leq 100000$
  • $Q\leq100000$
  • $-10 9 \leq A_i \leq 10 9$
  • $1 \leq QL_i \leq QR_i \leq N$

Output Format

對於每個頗旺的訊問輸出一行包含一個整數表示頗旺可以獲得的最大值。

Sample Input 1

4 3
1 -2 3 4
1 1
1 4
2 2

Sample Output 1

1
7
0

Hints

範例說明:

  1. 對區間$[1,1]$而言,最佳解便是取$[1,1]$區間可以獲得最大值1
  2. 對區間$[1,4]$而言,最佳解便是取$[3,4]$區間可以獲得最大值7
  3. 對區間$[2,2]$而言,頂多只能取[2,2]獲得-2,但為了不讓頗旺不開心,因此要回答0。

Problem Source

NEOJ Problem 249

Subtasks

No. Testdata Range Constraints Score
1 0~3 $N\leq 1000$,$Q\leq1000$ 20
2 4~9 無額外限制 80

Testdata and Limits

No. Time Limit (ms) Memory Limit (VSS, KiB) Output Limit (KiB) Subtasks
0 1000 262144 65536 1
1 1000 262144 65536 1
2 1000 262144 65536 1
3 1000 262144 65536 1
4 1000 262144 65536 2
5 1000 262144 65536 2
6 1000 262144 65536 2
7 1000 262144 65536 2
8 1000 262144 65536 2
9 1000 262144 65536 2