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; } 次....