結果
問題 |
No.871 かえるのうた
|
ユーザー |
![]() |
提出日時 | 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)