結果
問題 | No.1597 Matrix Sort |
ユーザー |
|
提出日時 | 2021-07-10 00:12:21 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 321 ms / 1,500 ms |
コード長 | 627 bytes |
コンパイル時間 | 197 ms |
コンパイル使用メモリ | 82,544 KB |
実行使用メモリ | 103,680 KB |
最終ジャッジ日時 | 2024-07-01 19:01:52 |
合計ジャッジ時間 | 7,276 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 27 |
ソースコード
from bisect import bisect_left, bisect_right N, K, P = map(int, input().split()) As = sorted(map(int, input().split())) Bs = sorted(map(int, input().split())) def isok(m): cnt = 0 p = N q = N r = N for A in As: while p > 0 and m - A < Bs[p - 1]: p -= 1 while q > 0 and m - A + P < Bs[q - 1]: q -= 1 while r > 0 and - A + P <= Bs[r - 1]: r -= 1 cnt += p + q - r # print(m ,cnt) return cnt < K ok = -1 ng = P while ng - ok > 1: mid = (ok + ng) // 2 if isok(mid): ok = mid else: ng = mid print(ok + 1)