A21374. 比赛晋级(match.cpp)
填空题
中等
知识点
题目描述
比赛晋级(match.cpp)
题目描述
圣诞节的联欢活动有一个趣味运动比赛,参加比赛的每名同学都能获得一份圣诞大礼包,同时比赛采用特殊的晋级机制,能晋级到下一轮的同学将获得额外惊喜礼包。晋级规则为:参加本轮比赛的 n 名同学(编号 1 到 n),第 i 名同学得分为 aᵢ,指定编号为 k 的同学,以他的得分 aₖ为基准,满足得分不低于 aₖ且得分为正的同学将晋级。你的任务是确定能获得晋级礼包的同学数量。
输入描述
第一行包含两个整数 n 和 k(1≤k≤n≤50);第二行包含 n 个以空格分隔的整数 a₁、a₂、…、aₙ(0≤aᵢ≤100),序列是非递增的(a₁≥a₂≥…≥aₙ)。
输出描述
输出晋级的同学数量。
样例输入
8 5
10 9 8 7 7 7 5 5样例输出
6样例输入
4 2
0 0 0 0样例输出
0参考答案
#include <iostream>
usingnamespacestd;
int main() {
int n, k;
cin >> n >> k;
int a[55]; // 题目限制n≤50,数组开55足够
for (int i = 1; i <= n; ++i) {
cin >> a[i];
}
int base = a[k]; // 以第k名的得分作为基准
int count = 0; // 统计晋级人数
// 遍历所有同学,满足“得分≥基准 且 得分>0”则计数
for (int i = 1; i <= n; ++i) {
if (a[i] >= base && a[i] > 0) {
count++;
}
}
cout << count << endl;
return0;
}
上一题
下一题