Easy h-index
Problem Description
比赛题目:
http://acm.hdu.edu.cn/downloads/2018ccpc_hn.pdf
The h-index of an author is the largest h where he has at least h papers with citations not less than h.
Bobo has published many papers.
Given a0,a1,a2,…,an which means Bobo has published ai papers with citations exactly i, find the h-index of Bobo.
Input
The input consists of several test cases and is terminated by end-of-file.
The first line of each test case contains an integer n.
The second line contains (n+1) integers a0,a1,…,an.
Output
For each test case, print an integer which denotes the result.
Constraint
- 1≤n≤2⋅105
- 0≤ai≤109
- The sum of n does not exceed 250,000.
Sample Input
1
1 2
2
1 2 3
3
0 0 0 0
Sample Output
1
2
0
Source
CCPC2018-湖南全国邀请赛-重现赛(感谢湘潭大学)
解题思路:
后缀和签到题,输出第一个sum【i】 >= i 的i。
AC代码:
#include<iostream>
#include<string>
using namespace std;
typedef long long ll;
const int N = 1e6+10;
ll a[N];
ll sum[N];
int main(){
ll n;
while(cin>>n)
{
for(int i = 0 ; i <= n ; i++)
cin>>a[i];
sum[n] = a[n];
for(int i = n-1 ; i >= 0 ; i --)
sum[i]= sum[i+1] + a[i];
ll ans = 0;
for(int i = n ; i >= 0 ; i --)
{
if(sum[i] >= i)
{
ans = i;
break;
}
}
cout<<ans<<endl;
}
return 0;
}