結果
問題 |
No.1597 Matrix Sort
|
ユーザー |
![]() |
提出日時 | 2021-12-14 00:06:45 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 587 bytes |
コンパイル時間 | 374 ms |
コンパイル使用メモリ | 82,208 KB |
実行使用メモリ | 108,964 KB |
最終ジャッジ日時 | 2024-07-23 00:05:13 |
合計ジャッジ時間 | 3,956 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | -- * 3 |
other | AC * 3 TLE * 3 -- * 21 |
ソースコード
def lower_bound(a,x): ng,ok = -1,len(a) while ok-ng>1: m = (ng+ok)//2 if x<=a[m]: ok = m else: ng = m return ok def upper_bound(a,x): ok,ng = -1,len(a) while ng-ok>1: m = (ng+ok)//2 if x>a[m]: ok = m else: ng = m return ok import sys input = sys.stdin.buffer.readline n,k,p = map(int,input().split()) a = list(map(int,input().split())) b = list(map(int,input().split())) b.sort() l,r = -1,p while r-l>1: m = (l+r)//2 cnt = 0 for i in range(n): cnt += upper_bound(b,m+p-a[i])-lower_bound(b,p-a[i])+1+upper_bound(b,m-a[i])+1 if cnt<k: l = m else: r = m print(l)