0
点赞
收藏
分享

微信扫一扫

2020牛客寒假算法基础集训营5.I——I题是个签到题【签到题】


​​题目传送门​​

题目描述

经过2019一年的比赛,牛牛战队的队员发现了一个重大规律:I题是个签到题!

签到题的定义是:通过人数大于等于全场人数的80%或者通过人数是所有题目前三多的题(也就是最多有两个题目通过人数严格比它多)叫做签到题。

2020赛季就要到了,牛牛战队要去验证这个规律了,已知现在每个题的过题情况,看一看I题是不是一个签到题。

输入描述:

输入数据共2行。第一行包括两个整数2020牛客寒假算法基础集训营5.I——I题是个签到题【签到题】_不区分大小写,表示比赛的总题数和比赛的总人数。

第二行包括以空格分隔的n个整数2020牛客寒假算法基础集训营5.I——I题是个签到题【签到题】_不区分大小写_02,表示每个题通过的人数。

输出描述:

如果I题是个签到题,则输出Yes,否则输出No。(不区分大小写)

输入

9 100
100 100 100 100 100 100 100 100 100

输出

Yes

题解

  • 排个序找一下即可,简单
  • 也可以直接排序之后判断是否大于等于2020牛客寒假算法基础集训营5.I——I题是个签到题【签到题】_#include_03即刻

AC-Code

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

const int maxn = 1e5 + 7;

struct Node {
int i;
double val;
}a[maxn];
bool cmp(Node a, Node b) {
return a.val > b.val;
}
int main() {
int n, m; while (cin >> n >> m) {
for (int i = 0; i < n; ++i) {
cin >> a[i].val;
a[i].i = i + 1;
}
double score_9 = a[8].val;
sort(a, a + n, cmp);
bool flag = true;
int cnt = 0;
for(int i = 0; i < n && flag; ++i){
if(a[i].i == 9){
if(a[i].val * 100 >= m * 80 || cnt < 3) flag = true;
else flag = false;
break;
}
if(a[i].val != score_9) ++cnt;
}
cout << (flag ? "Yes" : "No") << endl;
}
return 0;
}


举报

相关推荐

i春秋-签到题

0 条评论