青少年软件编程(C语言)等级考试试卷(三级)
分数:100 题数:5
一、编程题(共5题,共100分)
1.
分组均衡性
在上机实验课上,老师将所有学生排列为 n 排,每排坐 m 个学生。每个学生有左右两个邻座(除了这一排的左右两端)。每个人可以和自己的邻座互相帮助完成实验。除了每排左右两端的学生,中间的每个学生都可以同时与两个邻座分别协作。
由于每个学生的个人能力不同,假设协作产生的小组能力值是两个协作学生的能力值之和,老师希望知道,自己给出的座位安排在多大程度上是“均衡”的 —— 所谓
分组均衡性
,是指所有可能组成的协作小组的能力值的最大值与最小值之差。
给定一张座位安排表,请计算这个安排的分组均衡性。
时间限制:1000
内存限制:65536
输入
输入第一行给出 2 个正整数 n 和 m(2 ≤ n, m ≤ 100),依次为座位的排数和每排的人数。 随后 n 行,每行给出 m 个数字,代表对应座位上学生的能力值(为区间 [1, 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。
试题编号:20250308-3-01
试题类型:编程题
标准答案:
试题难度:一般
试题解析:
展示地址:点击浏览
考生答案:
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, m, a[110], b = 0, s = 1000000, bt, st, c;
cin >> n >> m;
for (int i = 1; i <= n; i++) {
for (int j = 0; j < m; j++) {
cin >> a[j];
}
for (int j = 1; j < m ; j++) {
c = a[j] + a[j - 1];
if (c > b) {
b = c;
}
if (c < s) {
s = c;
}
}
}
cout << b - s;
return 0;
}
考生得分:20
是否评分:已评分
评价描述:
2.
狼人杀简单版
以下文字摘自《灵机一动·好玩的数学》:“狼人杀”游戏分为狼人、好人两大阵营。在一局“狼人杀”游戏中,1 号玩家说:“2 号是狼人”,2 号玩家说:“3 号是好人”,3 号玩家说:“4 号是狼人”,4 号玩家说:“5 号是好人”,5 号玩家说:“4 号是好人”。已知这 5 名玩家中有 2 人扮演狼人角色,有 2 人说的不是实话,有狼人撒谎但并不是所有狼人都在撒谎。扮演狼人角色的是哪两号玩家?
本题是这个问题的升级版:已知 n 名玩家中有 2 人扮演狼人角色,有 2 人说的不是实话,有狼人撒谎但并不是所有狼人都在撒谎。要求你找出扮演狼人角色的是哪几号
202503C语言三级