(Python) 디펜스 게임

https://school.programmers.co.kr/learn/courses/30/lessons/142085

문제 설명

준호는 요즘 디펜스 게임에 푹 빠져 있다.

디펜스 게임은 준호가 빙의한 병사 n번 연속 적의 공격을 순서대로 막아내는 게임입니다.

디펜스 게임은 다음 규칙에 따라 진행됩니다.

  • 준호는 원래 군인이었다.

    나는 n명의 사람들이 있다.

  • 매 라운드 적 (i) 적이 나타납니다.

  • 남은 병사들 중 적만큼 소비 (i) 적을 막을 수 있습니다(i).
    • 예를 들어, 7명의 병사와 2명의 적이 남아 있는 경우 현재 턴을 차단하면 7 – 2 = 5명의 병사가 남게 됩니다.

    • 현재 턴의 적의 수가 남은 병사의 수를 초과하면 게임이 종료됩니다.

  • 게임에서 무적이라는 능력이 있고, 무적을 사용하면 병사를 낭비하지 않고 턴 동안 공격을 차단할 수 있습니다.

  • 무적은 최대 k 번 사용할 수 있습니다.

준호는 적시에 무적을 사용하여 가능한 한 많은 턴을 얻고 싶습니다.

준호가 처음에 가지고 있는 병사의 수는 n, 사용 가능한 무적권의 수 k, 매 턴 차례대로 공격할 적의 수를 포함하는 정수 배열 적은 매개변수로 지정됩니다.

풀기 함수를 완성하여 준호가 막을 수 있는 턴 수를 반환해 주세요.


제한

  • 1 ≤ N ≤ 1,000,000,000
  • 1 ≤ 케이 ≤ 500,000
  • 1 ≤ 적 길이 ≤ 1,000,000
  • 1 ≤ 적(나) ≤ 1,000,000
  • 적(i)은 i + 1턴을 공격하는 적의 수를 포함합니다.

  • 모든 라운드를 차단할 수 있는 경우 “enemy(i)”의 길이를 반환하십시오.

설명


암호