提出 #44605778


ソースコード 拡げる

import bisect
n, l, r = map(int, input().split())
a = list(map(int, input().split()))
class SegmentTree(): # 0-indexed で書く.
    def __init__(self, n):
        self.siz = 1
        while self.siz < n:
            self.siz *= 2
        self.dat = [0 for _ in range(2 * self.siz)]
    def update(self, p, x):
        p += self.siz
        self.dat[p] = x
        while p >= 2:
            p //= 2
            self.dat[p] = min(self.dat[p * 2], self.dat[(p * 2) + 1]) # 問題依存
    def rpd(self, l, r, a, b, nw):
        # st.rpd(l, r, 1, st.siz + 1, 1)で求まる.
        if r <= a or b <= l:
            return 10 ** 10 # 問題依存
        if l <= a and b <= r:
            return self.dat[nw]
        m = (a + b) // 2
        al = self.rpd(l, r, a, m, nw * 2)
        ar = self.rpd(l, r, m, b, nw * 2 + 1)
        return min(al, ar) # 問題依存
st = SegmentTree(n)
dp = [10 ** 9 for _ in range(n)]
dp[0] = 0
for i in range(n):
    st.update(i, dp[i])
for i in range(1, n):
    bl = a[i] - r
    br = a[i] - l
    il = bisect.bisect_left(a, bl)
    ir = bisect.bisect_right(a, br)
    rqr = st.rpd(il, ir, 0, st.siz, 1)
    dp[i] = rqr + 1
    st.update(i, dp[i])
print(dp[n - 1])

提出情報

提出日時
問題 B58 - Jumping
ユーザ harry_arbrebleu
言語 PyPy3 (7.3.0)
得点 1000
コード長 1241 Byte
結果 AC
実行時間 674 ms
メモリ 108168 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 1000 / 1000
結果
AC × 1
AC × 16
セット名 テストケース
Sample sample_01.txt
All corner_01.txt, corner_02.txt, corner_03.txt, corner_04.txt, corner_05.txt, corner_06.txt, killer_01.txt, killer_02.txt, min_01.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, sample_01.txt
ケース名 結果 実行時間 メモリ
corner_01.txt AC 356 ms 93264 KiB
corner_02.txt AC 428 ms 107876 KiB
corner_03.txt AC 381 ms 93248 KiB
corner_04.txt AC 426 ms 101660 KiB
corner_05.txt AC 424 ms 107972 KiB
corner_06.txt AC 486 ms 108108 KiB
killer_01.txt AC 532 ms 107960 KiB
killer_02.txt AC 584 ms 107848 KiB
min_01.txt AC 49 ms 61988 KiB
random_01.txt AC 616 ms 107880 KiB
random_02.txt AC 674 ms 107996 KiB
random_03.txt AC 595 ms 107944 KiB
random_04.txt AC 533 ms 108168 KiB
random_05.txt AC 499 ms 107776 KiB
random_06.txt AC 492 ms 108008 KiB
sample_01.txt AC 49 ms 61992 KiB