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<cstdio>
#include<cstring>
long long a[1000000],an;
void backtracking(long long i,int j)
{
    if(j==0)a[an++]=i;
    else
    {
        backtracking(i*10+3,j-1);
        backtracking(i*10+5,j-1);
        backtracking(i*10+8,j-1);
    }
}
char x[1001];
char y[1001];
int main()
{
    long long X=0,Y=0,before=0,res=0,j=0;
    int i,k,xn,yn;
    for(i=1;i<=11;i++)backtracking(0,i);
    scanf("%s%s",x,y);
    xn=strlen(x);yn=strlen(y);
    if(xn==yn)
    {
        for(i=0;x[i]==y[i]&&i<xn&&i<yn;i++)j=(j*10+x[i]-'0')%19980305;
        sscanf(x+i,"%lld",&X);
        sscanf(y+i,"%lld",&Y);
        for(;i++<xn;)j=j*10%19980305;
    }
    else
    {
        sscanf(x,"%lld",&X);
        sscanf(y,"%lld",&Y);
    }
    for(i=0;i<an;i++)
    {
        if(a[i]>=X&&a[i]<=Y)
        {
            res+=(j+before)%19980305*(j+a[i])%19980305;
            res%=19980305;
            before=a[i];
        }
    }
    printf("%lld",res);
}
| # | 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... |