結果
| 問題 |
No.1597 Matrix Sort
|
| コンテスト | |
| ユーザー |
Tomii9273
|
| 提出日時 | 2021-07-10 04:08:43 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 644 ms / 1,500 ms |
| コード長 | 677 bytes |
| コンパイル時間 | 180 ms |
| コンパイル使用メモリ | 82,560 KB |
| 実行使用メモリ | 478,608 KB |
| 最終ジャッジ日時 | 2024-07-01 23:32:53 |
| 合計ジャッジ時間 | 13,215 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 27 |
ソースコード
import sys
# sys.setrecursionlimit(10 ** 9) # Codeforcesでは350000程度に
def input(): return sys.stdin.readline().strip()
n, k, p = map(int, input().split())
A = list(map(int, input().split()))
B = list(map(int, input().split()))
AN = [0] * p
for i in range(n):
AN[A[i]] += 1
AN = [0] + AN + AN
for i in range(len(AN)-1):
AN[i+1] += AN[i]
# print(AN)
ok = p
ng = -1
while abs(ok - ng) > 1:
mi = (ok + ng) // 2
cnt = 0
for i in range(n):
l = p - B[i] if B[i] != 0 else 0
r = l + mi
# print("l,r", l, r)
cnt += AN[r+1] - AN[l]
# print(mi, cnt)
if cnt >= k:
ok = mi
else:
ng = mi
print(ok)
Tomii9273