This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |