Submission #50156872


Source Code Expand

#ABC340_20240210_C
N=int(input())
D={}
def chk(n):
    if(n in D):
        return D[n] +n
    elif(n==1):
        return 0
    else:
        if(n%2==0):
            ans=chk(n//2)*2
            D[n]=ans
            return ans+n
        else:
            ans=chk(n//2)+chk((n+1)//2)
            D[n]=ans
            return ans+n
ans=chk(N)
print(ans)

Submission Info

Submission Time
Task C - Divide and Divide
User Konini
Language Python (PyPy 3.10-v7.3.12)
Score 300
Code Size 370 Byte
Status AC
Exec Time 60 ms
Memory 76584 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 300 / 300
Status
AC × 3
AC × 11
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_random_00.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 02_corner_00.txt, 02_corner_01.txt, 03_min_00.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 59 ms 76416 KiB
00_sample_01.txt AC 60 ms 76568 KiB
00_sample_02.txt AC 60 ms 76428 KiB
01_random_00.txt AC 60 ms 76272 KiB
01_random_01.txt AC 60 ms 76336 KiB
01_random_02.txt AC 60 ms 76456 KiB
01_random_03.txt AC 60 ms 76440 KiB
01_random_04.txt AC 60 ms 76584 KiB
02_corner_00.txt AC 60 ms 76556 KiB
02_corner_01.txt AC 60 ms 76320 KiB
03_min_00.txt AC 60 ms 76532 KiB