최대 구간 합

각 질의값 b_j마다 a의 원소가 모두 b_j 이상인 연속 구간의 최대 합을 구하고, 그러한 구간이 없으면 0을 출력한다.

보통7정렬분할 정복동적 계획법누적 합아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

마티는 과거에서 미래로 돌아가려고 한다. 타임머신의 컴퓨터가 고장 나서, 필요한 값을 직접 계산해 입력해야 한다.

마티에게는 정수 배열이 두 개 있다. 길이가 nna[1..n]a[1..n]과 길이가 mmb[1..m]b[1..m]이다. 각 bjb_j에 대해, 원소가 모두 bjb_j 이상인 구간 a[l..r]a[l..r] 가운데 합 al+al+1++ara_l + a_{l+1} + \cdots + a_r이 가장 큰 값을 구해야 한다.

구간은 비어 있을 수 없어서 lrl \le r이고, 최대 합이 음수가 되기도 한다. aabjb_j 이상인 원소가 하나도 없으면 조건을 만족하는 구간이 없다.

입력

첫째 줄에 배열 aabb의 크기인 두 정수 nnmm이 주어진다 (1n,m1051 \le n, m \le 10^5).

둘째 줄에 nn개의 정수 aia_i가 주어진다 (109ai109-10^9 \le a_i \le 10^9).

셋째 줄에 mm개의 정수 bjb_j가 주어진다 (109bj109-10^9 \le b_j \le 10^9).

출력

mm개의 정수를 한 줄에 공백으로 구분해 출력한다. jj번째 수는 bjb_j에 대한 최대 구간 합이고, 조건을 만족하는 구간이 없으면 00을 출력한다.