結果

問題 No.2495 Three Sets
ユーザー prin_kemkemprin_kemkem
提出日時 2023-10-06 23:05:37
言語 PyPy3
(7.3.15)
結果
TLE  
実行時間 -
コード長 1,193 bytes
コンパイル時間 393 ms
コンパイル使用メモリ 82,028 KB
実行使用メモリ 105,444 KB
最終ジャッジ日時 2024-07-26 16:55:07
合計ジャッジ時間 7,539 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 106 ms
87,712 KB
testcase_01 AC 103 ms
80,648 KB
testcase_02 AC 90 ms
80,504 KB
testcase_03 AC 92 ms
80,800 KB
testcase_04 AC 92 ms
80,664 KB
testcase_05 AC 92 ms
80,664 KB
testcase_06 AC 90 ms
80,548 KB
testcase_07 AC 93 ms
80,284 KB
testcase_08 AC 93 ms
80,576 KB
testcase_09 AC 165 ms
82,352 KB
testcase_10 AC 268 ms
82,436 KB
testcase_11 AC 303 ms
82,208 KB
testcase_12 AC 555 ms
82,396 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