結果
| 問題 |
No.871 かえるのうた
|
| コンテスト | |
| ユーザー |
kit84
|
| 提出日時 | 2019-08-30 22:51:14 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 889 bytes |
| コンパイル時間 | 97 ms |
| コンパイル使用メモリ | 12,672 KB |
| 実行使用メモリ | 28,908 KB |
| 最終ジャッジ日時 | 2024-11-22 01:53:02 |
| 合計ジャッジ時間 | 5,346 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 43 WA * 6 |
ソースコード
# #debug
def dprint(*ar):
# print(*ar)
pass
N, K = map(int, input().split())
vX = list(map(int, input().split()))
vA = list(map(int, input().split()))
# init
# 0-origin
initX = vX[K-1]
initA = vA[K-1]
L, R = (initX-initA), (initX+initA)
# for plus
prevX, prevA = initX, initA
for i in range(K, N):
dist = abs(vX[i] - prevX)
dprint(dist, i, L, R)
if dist > prevA:
break
else:
prevX = vX[i]
prevA = max(vA[i], prevA - dist)
R = max(R, prevX + prevA)
L = min(L, prevX - prevA)
# for minus
prevX, prevA = initX, initA
for i in range(K-2, -1, -1):
dist = abs(vX[i] - prevX)
dprint(dist, i, L, R)
if dist > prevA:
break
else:
prevX = vX[i]
prevA = max(vA[i], prevA - dist)
R = max(R, prevX + prevA)
L = min(L, prevX - prevA)
res = sum([L<=x<=R for x in vX])
print(res)
kit84