Submission #45883653


Source Code Expand

import sys
sys.setrecursionlimit(30000)
t=int(input())

def calc(n,x,k):
    s=x*(2**k)
    e=x
    for _ in range(k):
        e=e*2+1
    if n < s:
        ret=0
    else:
        ret=min(n, e)-s+1
    return ret

def func(n,x,k):
    ret=0
    ret+=calc(n,x,k)

    for i in range(1, 100):
        if x == 1:
            if k-i < 0:
                ret+=1
            break
        if 1+i <= k:
            v=x^1
            ret+=calc(n, v, k-(1+i))
        x//=2

    return ret

for _ in range(t):
    n,x,k=map(int,input().split())
    if k == 0:
        print(1)
    else:
        print(func(n,x,k))

Submission Info

Submission Time
Task E - Complete Binary Tree
User Yuroru
Language Python (PyPy 3.10-v7.3.12)
Score 0
Code Size 641 Byte
Status RE
Exec Time 1956 ms
Memory 88056 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 450
Status
AC × 2
AC × 6
RE × 2
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt
All 00_sample_00.txt, 00_sample_01.txt, 01_small_00.txt, 02_large_00.txt, 02_large_01.txt, 02_large_02.txt, 02_large_03.txt, 02_large_04.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 61 ms 76568 KiB
00_sample_01.txt AC 62 ms 80452 KiB
01_small_00.txt AC 210 ms 85708 KiB
02_large_00.txt RE 136 ms 84248 KiB
02_large_01.txt RE 143 ms 83992 KiB
02_large_02.txt AC 1922 ms 87468 KiB
02_large_03.txt AC 1811 ms 88056 KiB
02_large_04.txt AC 1956 ms 87032 KiB