PivotOJ

수열과 쿼리 46

시간 제한: 3000ms메모리 제한: 2048MB출처: KOI 2025 2차BOJ 34208

문제

길이 ll의 수열 [B1,B2,,Bl][B_1 , B_2 , \dots , B_l ]에 대해, 수열의 연속 구간[Bi,Bi+1,,Bj][B_i , B_{i+1} ,\dots , B_j ]와 같이 수열 위에서 연속적으로 등장하는 수들의 부분 수열로 정의된다. 연속 구간은 비어 있을 수 없다. 즉, 1 ≤ i ≤ j ≤ l을 만족해야 한다.

길이 ll의 수열 [B1,B2,,Bl][B_1 , B_2 , \dots , B_l ]에 대해, 수열의 최대 연속 구간 합은 수열의 모든 연속 구간의 원소의 합의 최댓값으로 정의된다. 예를 들어, 수열 [6, −7, 3, −1, 5, 2]의 최대 연속 구간 합은 99이며, 이는 연속 구간 [3, −1, 5, 2]를 골라서 얻을 수 있다. 수열 BB의 최대 연속 구간 합을 수학 기호로 표현하면 max1ijl(k=ijBk)\max_{1 \le i \le j \le l}{\left( \sum_{k=i}^j{B_k} \right)}이다.

길이 NN의 수열 [A1,A2,,AN][A_1 , A_2 , \dots , A_N ]QQ개의 쿼리가 주어진다. ii번째 쿼리는 하나의 정수 XiX_i로 표현된다. XiX_i가 주어졌을 때, 수열 [A1+Xi,A2+Xi,,AN+Xi][A_1 + X_i , A_2 + X_i , \dots , A_N + X_i ]의 최대 연속 구간 합을 계산하라.

입력

첫 번째 줄에 NN, QQ가 공백을 사이에 두고 주어진다.

두 번째 줄에 A1,A2,,ANA_1 , A_2 , \dots , A_N이 공백을 사이에 두고 주어진다.

세 번째 줄에 X1,X2,,XQX_1 , X_2 , \dots , X_Q가 공백을 사이에 두고 주어진다.

출력

QQ개의 줄을 출력하라. 이 중 ii (1 ≤ i ≤ Q)번째 줄에는 수열 [A1+Xi,A2+Xi,,AN+Xi][A_1 + X_i , A_2 + X_i , \dots , A_N + X_i ]의 최대 연속 구간 합을 출력하라.

예제

예제 1

입력
6 15
6 -7 3 -1 5 2
-7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7
출력
-1
0
1
2
3
4
5
9
14
20
26
32
38
44
50

예제 2

입력
10 15
-2 6 3 -8 1 2 0 -3 9 6
-7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7
출력
2
3
5
7
9
11
13
16
25
34
44
54
64
74
84
코드를 제출하려면 로그인하세요.