結果

問題 No.2182 KODOKU Stone
ユーザー MasKoaTS
提出日時 2022-09-15 16:05:42
言語 PyPy3
(7.3.15)
結果
RE  
実行時間 -
コード長 954 bytes
コンパイル時間 454 ms
コンパイル使用メモリ 82,340 KB
実行使用メモリ 105,320 KB
最終ジャッジ日時 2024-11-14 12:02:36
合計ジャッジ時間 6,534 ms
ジャッジサーバーID
(参考情報)
judge2 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 15 WA * 20 RE * 2
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

# WA(?)
import sys
input = sys.stdin.readline
N = int(input())
K = list(map(int, input().split()))
T = [0] * N
A = [[] for _ in [0] * N]
st = set([])
ma1, ma2 = 0, 0
for i in range(N):
T[i] = int(input())
A[i] = list(map(int, input().split()))
st |= set(A[i])
lis = sorted(A[i], reverse = True)
id1 = min(K[-1], len(lis)) - 1
id2 = max(id1 - 1, 0)
ma1 = max(ma1, lis[id1])
ma2 = max(ma2, lis[id2])
if(ma1 == ma2):
lis = sorted(st, reverse = True)
ma1 = lis[1]
def check(md):
slis = []
wild = []
for lis in A:
s = sum((k >= md) for k in lis)
if(s == len(lis)):
wild.append(s)
else:
slis.append(s)
wild.sort(reverse = True)
slis.sort()
for i, k in enumerate(K[::-1]):
s = slis[-1] if(slis) else -1
w = wild[0] if(wild) else -1
if(max(s, w) >= k):
break
elif(s == k - 1 and i < N - 1):
slis.pop()
elif(wild):
wild.pop()
else:
return False
return True
ans = ma1
if check(ma2):
ans = ma2
print(ans)
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0