测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A27943. 分组均衡性

填空题 中等

题目描述

分组均衡性

题目描述

在上机实验课上,老师将所有学生排列为 n 排,每排坐 m 个学生。每个学生有左右两个邻座(除了这一排的左右两端)。每个人可以和自己的邻座互相帮助完成实验。除了每排左右两端的学生,中间的每个学生都可以同时与两个邻座分别协作。

由于每个学生的个人能力不同,假设协作产生的小组能力值是两个协作学生的能力值之和,老师希望知道,自己给出的座位安排在多大程度上是“均衡”的 —— 所谓分组均衡性,是指所有可能组成的协作小组的能力值的最大值与最小值之差。

给定一张座位安排表,请计算这个安排的分组均衡性。

输入

输入第一行给出 2 个正整数 n 和 m(2 ≤ n, m ≤ 100),依次为座位的排数和每排的人数。 随后 n 行,每行给出 m 个数字,代表对应座位上学生的能力值(为区间 [1, 100] 内的整数)。同行数字间以空格分隔。

输出

在一行中输出分组均衡性。

数据范围

2 ≤ n, m ≤ 100

输入样例

3 5
10 80 30 95 60
79 55 63 84 41
98 23 72 85 58

输出样例

67

提示

样例解释:最强组合是第 3 排的 72+85=157;最弱组合是第 1 排的 10+80=90。因此两者之差为 67。

参考答案

#include<iostream> #include<iomanip> using namespace std; int main() { int a[110][110]; int n,m; cin>>n>>m; for(int i = 0;i<n;i++) { for(int j = 0;j<m;j++) { cin>>a[i][j]; } } int f = 0; int p = 9999999; for(int i = 0;i<n;i++) { for(int j = 0;j<m-1;j++) { int x = a[i][j] + a[i][j+1]; f = max(f,x); p = min(p,x); } } cout<<f-p; return 0; }
上一题 下一题