結果

問題 No.2495 Three Sets
ユーザー prin_kemkemprin_kemkem
提出日時 2023-10-06 23:05:37
言語 PyPy3
(7.3.15)
結果
TLE  
実行時間 -
コード長 1,193 bytes
コンパイル時間 430 ms
コンパイル使用メモリ 87,164 KB
実行使用メモリ 98,940 KB
最終ジャッジ日時 2023-10-06 23:05:47
合計ジャッジ時間 8,977 ms
ジャッジサーバーID
(参考情報)
judge11 / judge13
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 185 ms
85,772 KB
testcase_01 AC 179 ms
81,192 KB
testcase_02 AC 194 ms
81,044 KB
testcase_03 AC 178 ms
81,328 KB
testcase_04 AC 180 ms
81,036 KB
testcase_05 AC 181 ms
81,320 KB
testcase_06 AC 181 ms
81,192 KB
testcase_07 AC 181 ms
81,084 KB
testcase_08 AC 189 ms
81,168 KB
testcase_09 AC 253 ms
83,156 KB
testcase_10 AC 363 ms
83,124 KB
testcase_11 AC 418 ms
83,348 KB
testcase_12 AC 648 ms
83,452 KB
testcase_13 TLE -
testcase_14 -- -
testcase_15 -- -
testcase_16 -- -
testcase_17 -- -
testcase_18 -- -
testcase_19 -- -
testcase_20 -- -
権限があれば一括ダウンロードができます

ソースコード

diff #

from collections import defaultdict, deque, Counter
import copy
from itertools import combinations, permutations, product, accumulate, groupby, chain
from heapq import heapify, heappop, heappush
import math
import bisect
from pprint import pprint
from random import randint
import sys
# sys.setrecursionlimit(700000)
input = lambda: sys.stdin.readline().rstrip('\n')
inf = float('inf')
mod1 = 10**9+7
mod2 = 998244353
def ceil_div(x, y): return -(-x//y)

#################################################

def f(x):
    sc = SC[x]
    return sa*j + sb*x + sc*i

def findMax(f, l, r):
    while r-l >= 3:
        c1 = l+(r-l)//3
        c2 = r-(r-l)//3
        if f(c1) > f(c2): r = c2
        else: l = c1
    return max(f(x) for x in range(l, r+1))


NA, NB, NC = map(int, input().split())
A = list(map(int, input().split()))
B = list(map(int, input().split()))
C = list(map(int, input().split()))
A.sort(reverse=True)
B.sort(reverse=True)
C.sort(reverse=True)

SA = [0]+list(accumulate(A))
SB = [0]+list(accumulate(B))
SC = [0]+list(accumulate(C))

ans = 0
for i in range(NA+1):
    sa = SA[i]
    for j in range(NB+1):
        sb = SB[j]
        ans = max(ans, findMax(f, 0, NC))
print(ans)
0