1661D - Progressions Covering - CodeForces Solution


data structures greedy *1900

Please click on ads to support us..

Python Code:

from sys import stdin, setrecursionlimit
input = stdin.readline
from bisect import bisect_left, bisect_right
from collections import deque
from functools import lru_cache, reduce
from heapq import heappush, heappop
from math import sqrt, ceil, floor, log2

def x(t = int):
    return list(map(t, input().split()))

n, k = x()
a = x()
carry = 0
ret = 0
lastK = 0
d = deque()
for i in range(n - 1, -1, -1):
    need = max(0, a[i] - carry)
    val = min(k, i+1)
    add = ceil(need / val)
    ret += add
    d.append(add)
    if len(d) > k:
        lastK -= d.popleft()
    carry += (val - 1) * add
    carry -= lastK
    
    lastK += add

print(ret)


Comments

Submit
0 Comments
More Questions

1516A - Tit for Tat
622. Design Circular Queue
814. Binary Tree Pruning
791. Custom Sort String
787. Cheapest Flights Within K Stops
779. K-th Symbol in Grammar
701. Insert into a Binary Search Tree
429. N-ary Tree Level Order Traversal
739. Daily Temperatures
647. Palindromic Substrings
583. Delete Operation for Two Strings
518. Coin Change 2
516. Longest Palindromic Subsequence
468. Validate IP Address
450. Delete Node in a BST
445. Add Two Numbers II
442. Find All Duplicates in an Array
437. Path Sum III
436. Find Right Interval
435. Non-overlapping Intervals
406. Queue Reconstruction by Height
380. Insert Delete GetRandom O(1)
332. Reconstruct Itinerary
368. Largest Divisible Subset
377. Combination Sum IV
322. Coin Change
307. Range Sum Query - Mutable
287. Find the Duplicate Number
279. Perfect Squares
275. H-Index II