結果

問題 No.2329 Nafmo、イカサマをする
ユーザー ああいい
提出日時 2023-06-01 11:43:47
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 225 ms / 2,000 ms
コード長 940 bytes
コンパイル時間 383 ms
コンパイル使用メモリ 81,792 KB
実行使用メモリ 100,736 KB
最終ジャッジ日時 2024-12-28 14:43:01
合計ジャッジ時間 4,770 ms
ジャッジサーバーID
(参考情報)
judge4 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 40
権限があれば一括ダウンロードができます

ソースコード

diff #

N,M,K = map(int,input().split())
A = list(map(int,input().split()))
A.append(0)


import sys

k1 = set(A)
k2 = set()
k3 = set()
for a in A:
    for b in A:
        k2.add(a + b)
        for c in A:
            k3.add(a + b + c)
if K == 0:
    print(0)
    exit()
if K == 1:
    ans = 0
    for a in A:
        if ans < a <= M:
            ans = a
    print(ans)
    exit()

D = K // 2
E = K - D
if D == 1:
    l = k1
elif D == 2:
    l = k2
else:
    l = k3
if E == 1:
    s = k1
elif E == 2:
    s = k2
else:
    s = k3
l = sorted(l)
s = sorted(s)
ans = 0

for a in l:
    if a + s[-1] <= M:
        if a + s[-1] > ans:
            ans = a + s[-1]
        continue
    end = len(s) - 1
    if a + s[0] > M:continue
    start = 0
    while end -start > 1:
        mid = end + start >> 1
        if a + s[mid] <= M:
            start = mid
        else:
            end = mid
    if a + s[start] > ans:
        ans = a + s[start]
print(ans)
0