Problem H: Eat Candy
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 1329 Solved: 643
[ 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<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
long a,b,i,re,t;
while(scanf("%ld %ld",&a,&b)!=EOF)
{
re=a/2;
while(1)
{
t=re;
re+=b;
re=re/2;
if(t==re)
{
printf("%ld\n",t+b);
break;
}
}
}
return 0;
}