Submission #4238691


Source Code Expand

A,B = map(int,input().split())
itika = [0] * 20
answer = 0
for i in range(20):

    if i >= 1:
        
        itika[i] = (itika[i-1] * 8) + (2 * (10**(i-1)))

def nino(a,b):

    return (a % (10**b)) // (10**(b-1))



if len(str(A)) == len(str(B)):

    miku = 100

    for i in range(len(str(A))):

        if nino(A,i+1) != nino(B,i+1):

            miku = i

    if miku != 100:

        for i in range(miku):

            if i == 0:
        
                if '4' in str(A)[0:len(str(A))-1] or '9' in str(A)[0:len(str(A))-1]:

                    answer += 10-nino(A,1)

                else:

                    if nino(A,1) <= 4:

                        answer += 2

                    else:

                        answer += 1

            else:

                if '4' in str(A)[0:len(str(A))-i-1] or '9' in str(A)[0:len(str(A))-i-1]:

                    answer += (10**i)*(9-nino(A,i+1))

                else:

                    if nino(A,i+1) <= 3:

                        answer += (2*(10**i))+((7-nino(A,i+1))*itika[i])

                    elif nino(A,i+1) == 9:

                        answer += 0

                    else:

                        answer += (10**i)+((8-nino(A,i+1))*itika[i])
                    
        for i in range(miku+1):

            if i != miku:
        
                if i == 0:

                    if '4' in str(B)[0:len(str(B))-miku-1] or '9' in str(B)[0:len(str(B))-miku-1]:

                        answer += nino(B,miku+1)*(10**(miku))

                    else:

                        if nino(B,miku+1) <= 4 or 4 <= nino(A,miku+1):

                            answer += (nino(B,miku+1)-nino(A,miku+1)-1) * itika[miku]

                        else:

                            answer += (nino(B,miku+1)-nino(A,miku+1)-2) * itika[miku] + (10**(miku))


                else:

                    if '4' in str(B)[0:len(str(B))-miku+i-1] or '9' in str(B)[0:len(str(B))-miku+i-1]:

                        answer += nino(B,miku+1-i) * (10**(miku-i))

                    else:

                        if nino(B,miku+1-i) <= 4:

                            answer += nino(B,miku+1-i) * itika[miku-i]

                        else:

                            answer += (nino(B,miku+1-i)-1) * itika[miku-i] + 10**(miku-i)

            else:

                if miku == 0:

                    if '4' in str(B)[0:len(str(B))-1] or '9' in str(B)[0:len(str(B))-1]:

                        answer += nino(B,1)-nino(A,1)+1

                    else:

                        for j in range(nino(B,1)-nino(A,1)+1):

                            if nino(A,1)+j == 4 or nino(A,1)+j == 9:

                                answer += 1

                else:

                    if '4' in str(B)[0:len(str(B))-1] or '9' in str(B)[0:len(str(B))-1]:

                        answer += nino(B,1)+1

                    else:

                        for j in range(nino(B,1)+1):

                            if j == 4 or j == 9:

                                answer += 1

            

    else:

        if '4' in str(B) or '9' in str(B):

            answer += 1

else:

    for i in range(len(str(B))-1):

        if i == 0:

            if '4' in str(A)[0:len(str(A))-1] or '9' in str(A)[0:len(str(A))-1]:

                answer += 10-nino(A,1)

            else:

                if i <= 4:

                    answer += 2

                else:

                    answer += 1

        elif i <= len(str(A))-1:

            if '4' in str(A)[0:len(str(A))-i-1] or '9' in str(A)[0:len(str(A))-i-1]:

                answer += (9-nino(A,i+1))*(10**i)

            else:

                if nino(A,i+1) <= 3:

                    answer += (2*(10**i))+(7-nino(A,i+1))*itika[i]

                elif nino(A,i+1) == 9:

                    answer += 0

                else:
                    
                    answer += (10**i)+(8-nino(A,i+1))*itika[i]

        else:

            answer += 7*itika[i]+2*(10**i)

    for i in range(len(str(B))):
        
        if i == 0:

            if nino(B,len(str(B))) <= 4:

                answer += (nino(B,len(str(B)))-1) * itika[len(str(B))-1]

            else:

                answer += (10**(len(str(B))-1)) + ((nino(B,len(str(B)))-2) * itika[len(str(B))-1])

        else:
            
            if '4' in str(B)[0:i] or '9' in str(B)[0:i]:

                answer += (10**(len(str(B))-i-1)) * nino(B,len(str(B))-i)

            else:

                if nino(B,len(str(B))-i) <= 4:

                    answer += nino(B,len(str(B))-i) * itika[len(str(B))-i-1]

                else:

                    answer += (10**(len(str(B))-i-1)) + ((nino(B,len(str(B))-i)-1) * itika[len(str(B))-i-1])

    if '4' in str(B) or '9' in str(B):

        answer += 1

print(answer)

Submission Info

Submission Time
Task D - 禁止された数字
User serenn
Language Python (3.4.3)
Score 0
Code Size 5006 Byte
Status WA
Exec Time 18 ms
Memory 3448 KB

Judge Result

Set Name Sample Subtask1 Subtask2
Score / Max Score 0 / 0 0 / 30 0 / 70
Status
AC × 4
AC × 14
WA × 2
AC × 36
WA × 3
Set Name Test Cases
Sample subtask0_sample01.txt, subtask0_sample02.txt, subtask0_sample03.txt, subtask0_sample04.txt
Subtask1 subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask0_sample01.txt, subtask0_sample02.txt, subtask0_sample03.txt
Subtask2 subtask0_sample01.txt, subtask0_sample02.txt, subtask0_sample03.txt, subtask0_sample04.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask2_13.txt, subtask2_14.txt, subtask2_15.txt, subtask2_16.txt, subtask2_17.txt, subtask2_18.txt, subtask2_19.txt, subtask2_20.txt, subtask2_21.txt, subtask2_22.txt
Case Name Status Exec Time Memory
subtask0_sample01.txt AC 18 ms 3448 KB
subtask0_sample02.txt AC 18 ms 3448 KB
subtask0_sample03.txt AC 18 ms 3448 KB
subtask0_sample04.txt AC 18 ms 3448 KB
subtask1_01.txt AC 18 ms 3448 KB
subtask1_02.txt AC 18 ms 3448 KB
subtask1_03.txt AC 18 ms 3448 KB
subtask1_04.txt AC 18 ms 3448 KB
subtask1_05.txt AC 18 ms 3448 KB
subtask1_06.txt AC 18 ms 3448 KB
subtask1_07.txt WA 18 ms 3448 KB
subtask1_08.txt WA 17 ms 3448 KB
subtask1_09.txt AC 18 ms 3448 KB
subtask1_10.txt AC 18 ms 3448 KB
subtask1_11.txt AC 18 ms 3448 KB
subtask1_12.txt AC 18 ms 3448 KB
subtask1_13.txt AC 18 ms 3448 KB
subtask2_01.txt AC 18 ms 3448 KB
subtask2_02.txt AC 18 ms 3448 KB
subtask2_03.txt AC 18 ms 3448 KB
subtask2_04.txt AC 18 ms 3448 KB
subtask2_05.txt AC 18 ms 3448 KB
subtask2_06.txt AC 18 ms 3448 KB
subtask2_07.txt AC 18 ms 3448 KB
subtask2_08.txt AC 18 ms 3448 KB
subtask2_09.txt AC 18 ms 3448 KB
subtask2_10.txt AC 18 ms 3448 KB
subtask2_11.txt AC 18 ms 3448 KB
subtask2_12.txt AC 18 ms 3448 KB
subtask2_13.txt WA 18 ms 3448 KB
subtask2_14.txt AC 18 ms 3448 KB
subtask2_15.txt AC 18 ms 3448 KB
subtask2_16.txt AC 18 ms 3448 KB
subtask2_17.txt AC 18 ms 3448 KB
subtask2_18.txt AC 18 ms 3448 KB
subtask2_19.txt AC 18 ms 3448 KB
subtask2_20.txt AC 18 ms 3448 KB
subtask2_21.txt AC 18 ms 3448 KB
subtask2_22.txt AC 18 ms 3448 KB