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 <string.h>
typedef long long ll;
char X[1005],Y[1005]; int XN, YN;
const ll MOD = 19980305;
ll res;
bool same() {
if(XN != YN) return false;
for(int i = 1; i <= XN; i++) if(X[i] != Y[i]) return false;
return true;
}
int main() {
int i, j;
scanf("%s%s", X+1, Y+1);
XN = strlen(X+1);
YN = strlen(Y+1);
ll last = 0;
for(i = 1; i <= XN; i++) last = (last * 10 + X[i] - '0') % MOD;
do {
ll now = 0;
for(i = XN; i > 0; i--) {
if(X[i] == '3') {X[i] = '5'; break; }
else if(X[i] == '5') {X[i] = '8'; break; }
else X[i] = '3';
}
if(i <= 0){
++XN;
for(i = 1; i <= XN; i++) X[i] = '3';
}
for(i = 1; i <= XN; i++) now = (now * 10 + X[i] - '0') % MOD;
res = (res + last * now) % MOD;
last = now;
}while(!same());
printf("%lld\n", res);
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |