Problem H: Eat Candy
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 1333 Solved: 644
[ 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 integers n,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.
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
long long n,k;
while(scanf("%lld%lld",&n,&k)!=EOF)
{
long long pre=n;
for(int i=0;i<1e9+7;i++)
{
n=n/2+k;
if(pre==n)
{
break;
}
pre=n;
}
cout<<n<<endl;
}
return 0;
}