結果

問題 No.871 かえるのうた
ユーザー FromBooska
提出日時 2023-02-27 15:10:23
言語 PyPy3
(7.3.15)
結果
TLE  
実行時間 -
コード長 881 bytes
コンパイル時間 263 ms
コンパイル使用メモリ 82,236 KB
実行使用メモリ 107,220 KB
最終ジャッジ日時 2024-09-14 22:33:56
合計ジャッジ時間 5,713 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 16 TLE * 1 -- * 32
権限があれば一括ダウンロードができます

ソースコード

diff #

# アイディアその1。dequeでシミュレーション、bisect, visited管理
# アイディアその2。グラフ化して届く頂点に有効辺張る、スタートから辿り着ける頂点の個数
# どっちでも行ける気がする

# deque案
N, K = map(int, input().split())
INF = 10**20
X = [-INF]+list(map(int, input().split()))+[INF]
A = [0]+list(map(int, input().split()))+[0]

from collections import deque
from bisect import *
que = deque()
que.append(K)
visited = [0]*(N+1)
visited[K] = 1
while que:
    current = que.popleft()
    lower = bisect_left(X, X[current]-A[current])
    upper = bisect_left(X, X[current]+A[current])
    if X[upper] != X[current]+A[current]:
        upper -= 1
    for nxt in range(lower, upper+1):
        if visited[nxt] == 0:
            visited[nxt] = 1
            que.append(nxt)

print(sum(visited))

#print(visited)


0