Higher h-index
http://acm.hdu.edu.cn/showproblem.php?pid=6277
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 749 Accepted Submission(s): 474
Problem Description
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 no papers and he is going to publish some subsequently.
If he works on a paper for x hours, the paper will get (a⋅x) citations, where a is a known constant.
It's clear that x should be a positive integer.
There is also a trick -- one can cite his own papers published earlier.
Given Bobo has n working hours, find the maximum h-index of him.
Input
The input consists of several test cases and is terminated by end-of-file.
Each test case contains two integers n and a.
Output
For each test case, print an integer which denotes the maximum h-index.
## Constraint
* 1≤n≤10^9
* 0≤a≤n
* The number of test cases does not exceed 104.
Sample Input
3 0
3 1
1000000000 1000000000
Sample Output
1
2
1000000000
1 2 1000000000
Hint
For the first sample, Bobo can work $3$ papers for $1$ hour each. With the trick mentioned, he will get papers with citations $2, 1, 0$. Thus, his $h$-index is $1$. For the second sample, Bobo can work $2$ papers for $1$ and $2$ hours respectively. He will get papers with citations $1 + 1, 2 + 0$. Thus, his $h$-index is $2$.
Source
题解
每个paper分配一个小时的方案最优,答案为(a+n)/2
C++代码
#include<iostream>
using namespace std;
int main()
{
int n,a;
while(~scanf("%d%d",&n,&a))
{
printf("%d\n",(n+a)/2);
}
return 0;
}