結果

問題 No.937 Ultra Sword
ユーザー otamay6otamay6
提出日時 2019-11-20 17:48:24
言語 PyPy3
(7.3.15)
結果
TLE  
実行時間 -
コード長 690 bytes
コンパイル時間 455 ms
コンパイル使用メモリ 81,884 KB
実行使用メモリ 190,396 KB
最終ジャッジ日時 2024-11-21 01:40:00
合計ジャッジ時間 90,081 ms
ジャッジサーバーID
(参考情報)
judge2 / judge3
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 40 ms
60,312 KB
testcase_01 TLE -
testcase_02 AC 39 ms
60,240 KB
testcase_03 AC 40 ms
146,396 KB
testcase_04 AC 40 ms
60,348 KB
testcase_05 AC 940 ms
190,396 KB
testcase_06 TLE -
testcase_07 TLE -
testcase_08 TLE -
testcase_09 TLE -
testcase_10 TLE -
testcase_11 TLE -
testcase_12 TLE -
testcase_13 TLE -
testcase_14 TLE -
testcase_15 TLE -
testcase_16 TLE -
testcase_17 TLE -
testcase_18 TLE -
testcase_19 TLE -
testcase_20 TLE -
testcase_21 TLE -
testcase_22 AC 41 ms
53,296 KB
testcase_23 AC 40 ms
52,708 KB
testcase_24 AC 1,447 ms
94,988 KB
testcase_25 AC 976 ms
94,164 KB
testcase_26 AC 1,012 ms
91,132 KB
testcase_27 AC 848 ms
91,236 KB
testcase_28 AC 1,005 ms
92,964 KB
testcase_29 AC 339 ms
82,772 KB
testcase_30 AC 1,012 ms
88,936 KB
testcase_31 AC 1,193 ms
96,160 KB
testcase_32 AC 743 ms
89,396 KB
testcase_33 AC 1,062 ms
95,956 KB
testcase_34 AC 516 ms
83,060 KB
testcase_35 AC 379 ms
82,648 KB
testcase_36 AC 970 ms
94,312 KB
testcase_37 AC 414 ms
82,648 KB
testcase_38 AC 850 ms
91,164 KB
testcase_39 AC 358 ms
82,360 KB
testcase_40 AC 940 ms
93,044 KB
testcase_41 AC 528 ms
84,832 KB
testcase_42 AC 821 ms
89,820 KB
testcase_43 AC 796 ms
89,164 KB
testcase_44 AC 467 ms
82,596 KB
testcase_45 AC 640 ms
86,152 KB
testcase_46 AC 732 ms
189,084 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

def GCD(x,y):
    if x>y:
        x,y=y,x
    Lx=len(bin(x))
    Ly=len(bin(y))
    if x!=0:
        return GCD(x,y^(x<<(Ly-Lx)))
    else:
        return y
def usable(x,g):
    Lx=len(bin(x))
    Lg=len(bin(g))
    while Lx>=Lg:
        x^=g<<(Lx-Lg)
        Lx=len(bin(x))
    return x==0

N = int(input())
A =list(map(int,input().split()))

S=sum(A)
M=max(A)
mi=[0]
for i in range(M):
    mi.append(0)
G=0
for i in range(N):
    G=GCD(G,A[i])
    j=1
    while j*j<=A[i]:
        if A[i]%j==0:
            mi[j]+=A[i]-A[i]//j
            if j*j!=A[i]:
                mi[A[i]//j]+=A[i]-j
        j+=1
    
X=S
for i in range(2,M+1):
    if(usable(i,G)):
        X=min(X,S-mi[i])
print(X)
0