東京海上日動プログラミングコンテスト2020 C - Lamps【Ptyhon】

問題はこちら

import sys
sys.setrecursionlimit(10**6)
read = sys.stdin.read
readline = sys.stdin.readline
readlines = sys.stdin.readlines

def main():
   N, K = map(int, readline().split())
   A = list(map(int, readline().split()))
   
   for _ in range(min(50, K)):
       S = [0]*(N + 1)
       for x, d in enumerate(A):
           l = max(0, x - d)
           r = min(N, x + d + 1)
           S[l] += 1; S[r] -= 1
       for i in range(N):
           S[i + 1] += S[i]
           A[i] = S[i]
   print(*A)
   
if __name__ == "__main__":
  main()

この記事が気に入ったらサポートをしてみませんか?