CD Making
Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others)
Submit Status
Tom has N songs and he would like to record them into CDs. A singleCD can contain at most K songs. In addition, Tom is very superstitious and hebelieves the number 13 would bring bad luck, so he will never let a CD containexactly 13 songs. Tom wants to use as few CDs as possible to recordall these songs. Please help him.
Input
There are T test cases. The first line gives T, number of test cases. T lines follow, each contains N and K, number of songs Tom wants to record into CDs, and themaximum number of songs a single CD can contain.
1≤N≤1000,1≤K≤1000
Output
For each test case, output the minimum number of CDsrequired, if the above constraints are satisfied.
Sample inputand output
Sample Input | Sample Output |
2 5 2 13 13 | 3 2 |
Hint
If Tom has 5 songs to record and a single CD can contain up to 2 songs, Tom has to use 3 CDs at minimum, each contains 2, 2, 1 songs, respectively.
In the second case, Tom wants to record 13 songs, and a single CD can hold 13 songs at most. He would have been able to use only 1 CD if he were not so superstitious. However, since hewill not record exactly 13 songs into a single CD, he has to use 2 CDs at least, the first contains 12 songs and the second contains one(Other solutions toachieve 2 CDs are possible, such as (11, 2), (10, 3), etc.).
Source
The 5th UESTC Programming Contest Preliminary
#include <stdio.h>
int main()
{
int T;
scanf("%d", &T);
while (T--)
{
int n, k, sum=0;
scanf("%d %d", &n, &k);
if (k==13 && n>=k)
sum = n%(k-1)==0?n/(k-1):(n/(k-1)+1);
else if (k==14 && n>=k && n%k==13)
sum = n/k+2;
else
{
if (n%k==13&&n<k)
sum = 2;
else
sum = n%k==0?n/k:(n/k+1);
}
printf("%d\n", sum);
}
return 0;
}