码迷,mamicode.com
首页 > 其他好文 > 详细

【PAT甲级】1117 Eddington Number (25分)

时间:2020-02-22 00:46:58      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:its   number   syn   cep   --   输入一个正整数n   大于   microsoft   name   

题意:

输入一个正整数N(<=100000),接着输入N个非负整数。输出最大的整数E使得有至少E个整数大于E。

AAAAAccepted code:

 1 #define HAVE_STRUCT_TIMESPEC
 2 #include<bits/stdc++.h>
 3 using namespace std;
 4 int a[100007];
 5 int num[100007];
 6 map<int,int>mp;
 7 int main(){
 8     ios::sync_with_stdio(false);
 9     cin.tie(NULL);
10     cout.tie(NULL);
11     int n;
12     cin>>n;
13     int cnt=0;
14     for(int i=1;i<=n;++i)
15         cin>>a[i];
16     sort(a+1,a+1+n);
17     for(int i=1;i<=n;++i){
18         if(!mp[a[i]])
19             mp[a[i]]=++cnt;
20         ++num[mp[a[i]]];
21     }
22     for(int i=cnt-1;i;--i)
23         num[i]+=num[i+1];
24     int ans=0;
25     for(int i=n;i;--i){
26         int pos=upper_bound(a+1,a+1+n,i)-a;
27         if(pos<=n&&num[mp[a[pos]]]>=i){
28             ans=i;
29             break;
30         }
31     }
32     cout<<ans;
33     return 0;
34 }

 

【PAT甲级】1117 Eddington Number (25分)

标签:its   number   syn   cep   --   输入一个正整数n   大于   microsoft   name   

原文地址:https://www.cnblogs.com/ldudxy/p/12343666.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!