ABC 315 C - Flavors
https://atcoder.jp/contests/abc315/tasks/abc315_c
提出
code: python
n = int(input())
fs = list(map(int, input().split())) for _ in range(n)
sortedfs = sorted(fs, key=lambda x: x1, reverse=True)
if sortedfs00 == sortedfs10:
ans1 = sortedfs01 + sortedfs11 / 2
ans2 = sortedfs01 + sortedfs21
print(max(ans1, ans2))
else:
print(sortedfs01 + sortedfs11)
解説
https://programming-hiroba.com/abc315-c/
code: python
n = int(input())
fs = list(map(int, input().split())) for _ in range(n)
fs.sort(key=lambda x: x1, reverse=True)
result = 0
# 美味しさが最大のアイスクリームは片方の候補になる
for i in range(1, n):
if fs00 != fsi0:
result = max(result, fs01 + fsi1)
else:
result = max(result, fs01 + fsi1 // 2)
print(result)
https://atcoder.jp/contests/abc315/editorial/6992
code: python
from collections import defaultdict
n = int(input())
fs = list(map(int, input().split())) for _ in range(n)
bk = defaultdict(list)
for f, s in fs:
bkf.append(s)
res = 0
best = []
for s_list in bk.values():
s_list.sort(reverse=True)
# 同じ味のアイスを 2 つ選んで食べる
if len(s_list) >= 2:
res = max(res, s_list0 + s_list1 // 2)
# 異なる味のアイスを 2 つ選んで食べる
if len(s_list) >= 1:
best.append(s_list0)
best.sort(reverse=True)
if len(best) >= 2:
res = max(res, best0 + best1)
print(res)