이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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... |