2021个人训练赛第13场 问题 H: 比赛(水题)

问题 H: 比赛

题目描述

小 X 参加了一场作文比赛的初赛。算上小 X,他的学校一共有 n 个人参加了这场比赛。一个礼拜后,小 X 兴奋地打开比赛官网,发现一等奖、二等奖、三等奖的分数线和所有人的得分都已经公布了,但没有提到获得什么奖项才能进入复赛。小 X 想问问你,如果要获得了 A 等奖才能进入复赛的话,他的学校有多少人能进入复赛呢?
假设 A 等奖的分数线是 x,一个人的分数是 y,那么如果 y 大于等于 x,这个人就获得了 A 等奖。

输入

输入数据共有四行。
第一行一个正整数 n,表示小 X 的学校一共有 n 个人参加了比赛。
第二行 n 个正整数,表示小 X 的学校中所有人的得分。
第三行三个正整数 L3,L2,L1,分别表示三等奖、二等奖、一等奖的分数线。
第四行一个正整数 A,表示要获得了 A 等奖才能进入复赛。

输出

输出一行包含一个整数,表示有多少人进入复赛。

样例输入

4
99 101 200 300
100 200 300
2

样例输出
2

提示
样例解释
第一个人 99 分,没有奖项
第二个人 101 分,获得了三等奖
第三个人 200 分,获得了三等奖、二等奖
第四个人 300 分,获得了三等奖、二等奖、一等奖
一共有 2 个人获得了二等奖,所以有 2 个人进入复赛

数据范围

本题共有 10 个测试点,每个测试点 8 分
对于全部数据:所有人的得分<=1000,L3<=L2<=L1<=1000,A 是{1,2,3}中的一个
对于测试点 1-2 :n=1 对于测试点 3-6 :n<=10
对于测试点 7-10:n<=10000

解题思路:

又是一道签到题。只需模拟一下过程,计算一二三等奖获奖的人数,根据题意输出即可。
(感觉这道题比较扯的是可以同时拿多个奖,拿了一等奖就肯定也获得了二三等奖,这就是签到的魅力吧)

AC代码:

#include <iostream>
using namespace std;
int x[100010];
int main()
{
	int n;
	cin>>n;
	for(int i=1;i<=n;i++) cin>>x[i];
	
	int l3,l2,l1;
	cin>>l3>>l2>>l1;
	
	int a;
	cin>>a;
	
	int res1=0,res2=0,res3=0;
	for(int i=1;i<=n;i++)
	{
		if(x[i]>=l1) res1++;   //一等奖 人数 
		if(x[i]>=l2) res2++;   //二等奖 人数 
		if(x[i]>=l3) res3++;   //三等奖 人数 
	}
	
	if(a==1)
	cout<<res1;
	if(a==2)
	cout<<res2;
	if(a==3)
	cout<<res3;
	
	
	
}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值