#abc466e. Range Flip
Range Flip
题目描述
有 张卡片排成一排,编号为 。
第 张卡片正面写着整数 ,反面写着整数 。初始时所有卡片都是正面朝上。
你最多可以进行 次下面的操作:
- 选择满足 的整数 ,把编号在 到 之间的每一张卡片都翻面(把原本朝下的一面翻到朝上)。
操作结束后,请求出所有卡片朝上一面所写数字之和的最大值。
输入格式
N K
A_1 B_1
A_2 B_2
...
A_N B_N
输出格式
输出最大的数字之和。
输入示例 1
7 2
2 1
6 9
3 5
9 2
4 8
7 4
5 6
输出示例 1
45
示例 1 说明
第 次操作取 ,第 次操作取 。
此时第 张卡片被翻了两次,等于没翻,仍是正面。最终朝上的数字依次为 ,和为 。
这说明「翻两次等于没翻」,多个区间可以互相抵消。
输入示例 2
5 6
9 6
3 2
8 1
7 5
8 4
输出示例 2
35
示例 2 说明
这里 比 还大,可以让每张卡片都独立取到 :。注意「最多 次」,一次都不操作也是允许的。
输入示例 3
9 1
2 7
9 4
1 1
6 1
3 4
8 9
1 2
7 5
3 9
输出示例 3
47
示例 3 说明
只允许一次操作,也就是最多只能翻转一段连续区间,需要仔细挑选这段区间的左右端点。
约束条件
- 所有输入值均为整数