好久没写代码了,我太菜了。
做一下签到题,结果写的又慢,脑子还转不过来。
出题人的题解是排序做的,我没有排序。(其实也差不多
判断一个题是签到题一共两个条件,

  1. 通过人数大于等于全场人数的80%
  2. 通过人数是所有题目前三多的题
    对于第一点,只需要判断 就好
    对于第二点,遍历一遍,记录一下有多少题目的通过人数比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;
    }