好久没写代码了,我太菜了。
做一下签到题,结果写的又慢,脑子还转不过来。
出题人的题解是排序做的,我没有排序。(其实也差不多
判断一个题是签到题一共两个条件,
- 通过人数大于等于全场人数的80%
- 通过人数是所有题目前三多的题
对于第一点,只需要判断 就好
对于第二点,遍历一遍,记录一下有多少题目的通过人数比I题多
这个数字小于等于2的话,这道题目就是签到题啦#include using namespace std; int main() { int n,m; cin>>n>>m; int a[20000]; for(int i = 0 ; i< n ; i++) { cin>>a[i]; } int gnum = 0 ; int I='I'-'A';//算出一个下标,表示第I题 for(int i = 0 ; i< n ; i++) { if((a[I]<a[i])&&(i!=I))//判断有多少题的通过人数严格大于I题 { gnum++; } } if((gnum=0.8) cout<<"Yes"<<endl; } else{ cout<<"No"<<endl; } return 0; }