結果
| 問題 |
No.871 かえるのうた
|
| コンテスト | |
| ユーザー |
学ぶマン
|
| 提出日時 | 2025-03-29 12:23:39 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 1,643 bytes |
| コンパイル時間 | 328 ms |
| コンパイル使用メモリ | 82,352 KB |
| 実行使用メモリ | 106,988 KB |
| 最終ジャッジ日時 | 2025-03-29 12:23:47 |
| 合計ジャッジ時間 | 7,635 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 10 TLE * 1 -- * 38 |
ソースコード
import sys, math
sys.setrecursionlimit(10**8)
sys.set_int_max_str_digits(0)
INF = 10**18
MOD = 998244353
from bisect import bisect_left, bisect_right
from collections import deque, defaultdict, Counter
from itertools import product, combinations, permutations, groupby, accumulate
from heapq import heapify, heappop, heappush
def I(): return sys.stdin.readline().rstrip()
def II(): return int(sys.stdin.readline().rstrip())
def IS(): return sys.stdin.readline().rstrip().split()
def MII(): return map(int, sys.stdin.readline().rstrip().split())
def LI(): return list(sys.stdin.readline().rstrip())
def TII(): return tuple(map(int, sys.stdin.readline().rstrip().split()))
def LII(): return list(map(int, sys.stdin.readline().rstrip().split()))
def LSI(): return list(map(str, sys.stdin.readline().rstrip().split()))
def GMI(): return list(map(lambda x: int(x) - 1, sys.stdin.readline().rstrip().split()))
def kiriage(a, b): return (a+b-1)//b
N, K = MII()
X = LII()
A = LII()
done = [False] * N
que = deque()
que.append(K - 1)
while que:
idx = que.popleft()
done[idx] = True
pos = X[idx]
# 座標が pos - A[idx] 以上の最小の点はどこか?
cur = bisect_left(X, pos - A[idx])
# left から右に向かって、done が True になるまでチェックする
while True:
if done[cur]:
break
que.append(cur)
cur += 1
# 座標が pos + A[idx] 以下の最大の点はどこか?
cur = bisect_right(X, pos + A[idx]) - 1
while True:
if done[cur]:
break
que.append(cur)
cur -= 1
ans = done.count(True)
print(ans)
学ぶマン