Submission #1208226

#TimeUsernameProblemLanguageResultExecution timeMemory
1208226ofozRabbit Carrot (LMIO19_triusis)Pypy 3
0 / 100
160 ms51404 KiB
from collections import deque
from sys import setrecursionlimit
from math import ceil, floor, sqrt
from itertools import permutations

def solve():
    n, m = map(int, input().split(" "))
    a = []
    for i in range(n): a.append(int(input()) - m * (i+1))

    dp = [-float('inf')] * (n+1)
    dp[0] = 0
    for i in range(n):

        l, r = 0, n-1
        while r-l>1:
            mid = (l+r)//2
            if a[i] <= dp[mid]: l = mid
            else: r = mid

        if a[i] <= dp[l]: dp[r] = max(a[i], dp[r])

    
    for i in range(n, -1, -1):
        if dp[i] > -float('inf'):
            print(n - i)
            return





"""
a[i] <= a[i+1] + m
a[i] - mi >= a[i+1] - (m+1)i
"""

solve()

Compilation message (stdout)

Compiling 'triusis.py'...

=======
  adding: __main__.pyc (deflated 32%)

=======
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...