結果
問題 | No.1597 Matrix Sort |
ユーザー | 👑 rin204 |
提出日時 | 2021-07-09 22:13:01 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,373 ms / 1,500 ms |
コード長 | 602 bytes |
コンパイル時間 | 257 ms |
コンパイル使用メモリ | 82,296 KB |
実行使用メモリ | 103,800 KB |
最終ジャッジ日時 | 2024-07-01 16:45:35 |
合計ジャッジ時間 | 26,490 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 27 |
ソースコード
from bisect import bisect_left, bisect_right n, k, p = map(int, input().split()) alst = list(map(int, input().split())) blst = list(map(int, input().split())) alst.sort() blst.sort() def ok(x): cnt = 0 for a in alst: b_min = p - a b_max = (x - a) % p p1 = bisect_right(blst, b_max) p2 = bisect_left(blst, b_min) if b_max >= b_min: cnt += p1 - p2 else: cnt += p1 + n - p2 return cnt >= k l = -1 r = p - 1 while r - l > 1: mid = (r + l) // 2 if ok(mid): r = mid else: l = mid print(r)