結果
問題 | No.2182 KODOKU Stone |
ユーザー |
👑 |
提出日時 | 2023-12-29 15:39:47 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 967 bytes |
コンパイル時間 | 356 ms |
コンパイル使用メモリ | 82,232 KB |
実行使用メモリ | 161,348 KB |
最終ジャッジ日時 | 2024-09-27 16:12:42 |
合計ジャッジ時間 | 16,628 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 36 WA * 1 |
ソースコード
n = int(input())K = list(map(int, input().split()))A = [[] for _ in range(n)]for i in range(n):input()A[i] = list(map(int, input().split()))def ok(x):C = []all_ = []for row in A:c = sum(a >= x for a in row)if c == len(row):all_.append(c)else:C.append(c)if not C:return TrueC.sort()all_.sort(reverse=True)for k in K[::-1]:if C and C[-1] >= k:return Trueelif all_ and all_[0] >= k:return Trueif C[-1] == k - 1:if all_ and all_[-1] < k - 1:all_.pop()else:C.pop()elif all_:all_.pop()else:return Falseif not C and all_:return Truereturn Falsel = 1r = 1 << 30while r - l > 1:mid = (l + r) // 2if ok(mid):l = midelse:r = midprint(l)