結果
| 問題 |
No.871 かえるのうた
|
| コンテスト | |
| ユーザー |
FromBooska
|
| 提出日時 | 2023-04-19 19:54:24 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 104 ms / 2,000 ms |
| コード長 | 952 bytes |
| コンパイル時間 | 235 ms |
| コンパイル使用メモリ | 82,432 KB |
| 実行使用メモリ | 98,880 KB |
| 最終ジャッジ日時 | 2024-11-30 11:12:16 |
| 合計ジャッジ時間 | 4,529 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 49 |
ソースコード
# K番から右と左に尺取り法
# 毎回min, maxを更新していき、それに合わせて尺取りを動かす
N, K = map(int, input().split())
X = list(map(int, input().split()))
A = list(map(int, input().split()))
K -= 1
left = K
right = K
mn = X[K]-A[K]
mx = X[K]+A[K]
#print(left, right, mn, mx)
while True:
improve = False
while left > 0:
if mn <= X[left-1]:
left -= 1
improve = True
mn = min(mn, X[left]-A[left])
mx = max(mx, X[left]+A[left])
else:
break
while right < N-1:
if mx >= X[right+1]:
right += 1
improve = True
mn = min(mn, X[right]-A[right])
mx = max(mx, X[right]+A[right])
else:
break
#print('improve', improve, 'left', left, 'right', right)
if improve == False:
break
ans = right+1-left
print(ans)
FromBooska