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

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; }
上一题 下一题