谁会解这道题啊?
2023-08-09 15:39:39
发布于:河北
谁会解这道题啊?链接描述
全部评论 1
我
#include <iostream> #include <algorithm> using namespace std; int main(){ int g, p, k; // g 竞赛次数, p 竞赛人数, k 积分规则数 while (cin >> g >> p, g + p) { // 先输入 g, p, 循环能否继续根据 g + p 的值 int ends[110][110]; // ends[i] 表示第 i 名的是哪个选手 for (int i = 1; i <= g; i++) { // 每场竞赛 p 名选手冲向终点的先后顺序 for (int j = 1; j <= p; j++) { int race; cin >> race; ends[i][race] = j; // 设置这场竞赛第 race 是第几个车手 } } cin >> k; // k 个积分规则 while (k--) { // 循环做 k 次积分规则下的冠军 int points[110]{}, stds[110], m; // 1~100 车手的积分,积分规则,前 m 名才有 cin >> m; for (int i = 1; i <= m; i++) { cin >> stds[i]; // 输入到积分规则标准里头 } int MX = 0; // 最高积分 for (int i = 1; i <= g; i++) { // 总共进行了 k 场,所有车手的积分累加到 points 数组中 for (int j = 1; j <= m; j++) { // 只有前 m 名才有分数 points[ends[i][j]] += stds[j]; // 获得第几名,得到第几名的分值 } } for (int i = 1; i <= p; i++) { MX = max(MX, points[i]); // 获取最大积分值 } int ot = 0; for (int i = 1; i <= p; i++) { // 把每个车手的积分判断,如果和 MX 相同 if (points[i] == MX) { // 输出车手编号 if (ot++ == 0) cout << i; else cout << " " << i; } } cout << "\n"; } } return 0; }
2024-07-27 来自 浙江
0
有帮助,赞一个