Accept: 525Submit: 1137
Time Limit: 1000 mSecMemory Limit : 32768 KB
Problem Description
Peter has n cigarettes. He smokes them one by one keeping all the butts. Out of k > 1 butts he can roll a new cigarette.
How many cigarettes can Peter have?
Input
Input is a sequence of lines. Each line contains two integer numbers giving the values of n and k.
Output
For each line of input, output one integer number on a separate line giving the maximum number of cigarettes that Peter can have.
Sample Input
4 3 10 3 100 5
Sample Output
5 14 124
//逻辑很简单, 但让我TLE了
#include<iostream>
using namespace std;
int main()
{
int n,k,t;
unsigned __int64 re;
while(scanf("%d%d",&n,&k)!=EOF)
{
re=0;
while(n>=k)
{
t=n/k;
re+=t*k;
n=t+n%k;
}
printf("%I64u/n",re+n);
}
return 0;
} 次....