結果

問題 No.2844 Birthday Party Decoration
ユーザー titiatitia
提出日時 2024-08-24 01:58:13
言語 Python3
(3.12.2 + numpy 1.26.4 + scipy 1.12.0)
結果
AC  
実行時間 89 ms / 2,000 ms
コード長 1,077 bytes
コンパイル時間 277 ms
コンパイル使用メモリ 12,800 KB
実行使用メモリ 10,880 KB
最終ジャッジ日時 2024-08-24 01:58:16
合計ジャッジ時間 1,417 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 30 ms
10,880 KB
testcase_01 AC 81 ms
10,752 KB
testcase_02 AC 79 ms
10,752 KB
testcase_03 AC 89 ms
10,880 KB
testcase_04 AC 81 ms
10,752 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

import sys
input = sys.stdin.readline

T=int(input())

for tests in range(T):
    N,X=map(int,input().split())
    C=list(map(int,input().split()))

    A=[]

    for c in C:
        if (1<<c) & X !=0:
            continue
        k=2**c

        a=(X+k-1)//k
        if a%2==0:
            a+=1

        A.append(a*k-X)

    B=[]

    for c in C:
        if (1<<c) & X !=0:
            continue
        k=2**c

        a=X//k
        if a%2==1:
            a-=1

        if a==0:
            B.append(1<<63)
        else:
            B.append(X-a*k+1)

    #print(A)
    #print(B)

    if A==[] and B==[]:
        print(0)
        continue

    print(min(max(A),max(B))*2)
    continue


    D=[]

    for i in range(len(A)):
        D.append((A[i],B[i]))

    D.sort()

    #print(D)

    MAX=[0]*len(D)
    MAX[-1]=D[-1][1]

    for i in range(len(D)-2,-1,-1):
        MAX[i]=max(MAX[i+1],D[i][1])

    ANS=min(D[-1][0]*2,MAX[0]*2)

    for i in range(len(D)-1):
        l=D[i][0]
        r=MAX[i+1]

        ANS=min(ANS,min(l,r)*2+max(l,r))

    print(ANS)
        


    
0