Problem H: Eat Candy
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 1336 Solved: 646
[Submit][Status][Web Board]
Description
There is a box with infinite volume. At first there are n candies in the box. Then every second you will eat some candies, left half of candies (round down) in the box. Then add k candies into the box. How many candies there are in the box after 109+7 seconds?
Input
There are multiple test cases. In each test case, there are only one line contains two integersn,k(1≤n,k≤109+7)
Output
For each test case, output the answer in one line.
Sample Input
4 5
2 3
Sample Output
9
5
HINT
In the first test case:
1st second, 4->2, 2+5 = 7
2nd second, 7->3, 3+5 = 8
3rd second, 8->4, 4+5 = 9
4th second, 9->4, 4+5 = 9
…
1000000007th 9
So there are 9 candies in the box after 1000000007 seconds.
来源: http://acm.hzau.edu.cn/problem.php?cid=1009&pid=7
///很容易发现200(可能更小)次后就固定了#include <iostream>#include <cstdio>#include <map>#include <string>#include <algorithm>#include <stdlib.h>#include <cstring>usingnamespacestd;
int P[1000];
longlong Handle(longlong n,longlong k)
{
longlong C = n;
for(int i=1;i<=200;i++) C = C/2 + k;
return C;
}
int main()
{
//freopen("D:\\test.txt","r",stdin);//freopen("D:\\tzzt.out","w",stdout);longlong n,k;
while(~scanf("%lld %lld",&n,&k)) printf("%lld\n",Handle(n,k));
return0;
}