#641. 班级积分批量修正
班级积分批量修正
班级积分批量修正
故事背景
学校举行了一次大型校园科技节,各个班级根据活动表现获得积分奖励。活动结束后,教务处发现部分项目的计分标准需要统一调整:有些项目要给参与班级统一加分,有些则需要统一扣分。
每次调整都会影响一段连续编号的班级,例如“给第 班到第 班每班加 分”( 可以为负,表示扣分)。经过多轮集中修正后,教务处想知道最终哪一个班级的总积分最高,以及这个最高积分是多少。
请你帮助统计最终结果。
题目描述
给定一个长度为 的整数数组 ,表示 个班级的初始积分。接下来有 次批量修正操作。每次操作给出三个整数 ,表示对所有满足 的班级,将其积分 同时增加 。
所有操作按顺序依次作用在同一份积分数组上。请你输出最终积分最高的那一个班级编号以及对应的积分值;如果有多个班级达到最高积分,输出编号最小的那个。
输入格式
- 第一行包含两个整数 ,表示班级数量和批量修正次数。
- 第二行包含 个整数,表示数组 的初始积分。
- 接下来 行,每行包含三个整数 ,表示一次区间修正操作。
保证 。
输出格式
输出一行,包含两个整数:
- 第一个整数为所有班级中最终积分的最大值;
- 第二个整数为达到该积分的班级中编号最小的那个班级编号( 基)。
输入输出样例 #1
输入 #1
5 3
10 20 30 40 50
2 4 5
1 3 -10
3 5 2
输出 #1
47 5
样例解释 #1
初始积分为 。
- 第一次操作,将 区间内每个班级加 分,变为 ;
- 第二次操作,将 区间内每个班级减 分,变为 ;
- 第三次操作,将 区间内每个班级加 分,最终变为 。
此时最高分为 ,由 班获得,因此输出:
52 5
数据范围
对所有数据,保证:
- ;
- ;
- ;
- 所有中间结果与最终答案均在 位有符号整数范围内。
要求程序在合理时间内完成所有修正并输出答案。