#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <assert.h>
#include <memory.h>
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long llu;
typedef double lf;
typedef long double llf;
int TC, TCC;
ll A; int B, C;
bool used[200];
ll sum[200];
int main() {
int i, j;
scanf("%d", &TC);
while(++TCC <= TC) {
memset(used, 0, sizeof used);
memset(sum, 0, sizeof sum);
scanf("%lld%d%d", &A, &B, &C);
int t = C-1;
int l = 0;
for(l = 0; l <= C; l++) {
int e = (t + B) % C;
if(used[e]) { --l; break; }
used[e] = true;
if(l > 0) sum[l] = sum[l-1] + (ll)ceil((double)(t+B+1)/C);
else sum[l] = (ll)ceil((double)B/C);
t = e;
}
ll res = 0;
res = sum[l] * (A / (l+1));
if(A % (l+1) > 0) res += sum[A % (l+1) - 1];
printf("Case #%d: %lld\n", TCC, res);
/* for(i = 0; i <= l; i++) printf("%lld ", sum[i]);
puts("");
*/
}
return 0;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
1676 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
1676 KB |
Output is correct |