QOJ.ac

QOJ

Time Limit: 0.75 s Memory Limit: 64 MB Total points: 100
统计

题目描述

给一个长为 $n$ 的序列,有 $m$ 次查询操作。

查询操作形如 $l\;r\;L\;R$,表示将序列中值在 $[L,R]$ 内的位置保留不变,其他的位置变成 $0$ 时,序列中 $[l,r]$ 区间内的最大子段和,这个子段可以是空的。

输入格式

第一行两个整数 $n,m$。

第二行 $n$ 个整数表示这个序列。

之后 $m$ 行,每行四个整数 $l\;r\;L\;R$ 表示一次查询操作。

输出格式

输出 $m$ 行,每行一个整数表示答案。

样例 #1

样例输入 #1

6 5
-1 1 -4 5 -1 4
1 1 4 5
1 1 4 514
2 3 3 3
1 6 -1 5
2 5 2 5

样例输出 #1

0
0
0
9
5

提示

Idea:nzhtl1477,Solution:ccz181078,Code:ccz181078,Data:nzhtl1477

对于 $100\%$ 的数据,$1\leq n,m \le 10^5$,序列中所有数的绝对值 $\le 10^9$。

第四组查询中,值域限制是 $[-1,5]$,序列为 -1 1 0 5 -1 4,区间 $[1,6]$ 的最大子段为 $[2,6]$,和为 $9$。

第五组查询中,值域限制是 $[2,5]$,序列为 0 0 0 5 0 4,区间 $[2,5]$ 的最大子段为 $[4,4]$(并列),和为 $5$。