아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

악보 만들기

시간 제한1초메모리 제한1024 MB

요약
음표와 쉼표의 수열을 순서대로 나누되, 마지막 장을 뺀 모든 장이 최대 X개의 기호로 끝나고 끝에 쉼표 K개가 연속하도록 하는 최소 페이지 수를 구한다.
난이도

보통10점 중 7점

유형
동적 계획법, 그리디, 배열
정답자
아직 제출이 없습니다

문제

오케스트라에서 연주자는 쉬는 시간 동안 악보를 넘긴다.

문제에서 모든 음표와 쉼표의 음길이는 11초라고 가정한다. 연주자는 쉼표일 때 쉴 수 있고 한 번에 쉬는 시간이 KK초 이상은 되어야 악보를 넘길 수 있다. 즉, 악보의 마지막 장을 제외한 모든 장의 끝에는 KK개의 쉼표가 연속해서 있어야 한다. 또한, 악보 한 장에는 음표와 쉼표를 합하여 최대 XX개 적을 수 있다.

이 조건을 만족하면서 모든 기호를 순서대로 기록하기 위해 필요한 악보 페이지 수의 최솟값을 구하는 프로그램을 작성하자.

입력

첫 번째 줄에 기호의 개수 NN, 악보 한 장에 쓸 수 있는 기호의 개수 XX, 페이지를 넘기기 위해 필요한 쉼표의 개수 KK가 공백으로 구분되어 주어진다. (1≤K<X<N≤200,000)(1 \leq K \lt X \lt N \leq 200\\,000)

두 번째 줄에 기호를 나타내는 NN개의 정수 A_iA\_i가 공백으로 구분되어 주어진다. (A_i∈0,1)(A\_i \in \\{0, 1\\})

A_i=0A\_i=0이면 쉼표이고, A_i=1A\_i=1이면 음표이다.

출력

필요한 악보 페이지 수의 최솟값을 출력한다. 조건을 만족하는 악보를 만들 수 없다면 −1-1을 출력한다.

힌트

실제로 악보를 작성하는 방법과는 다를 수 있다.

예제2

  1. 예제 1

    입력
    10 3 1
    1 1 0 1 0 0 1 0 1 1
    
    예상 출력
    4
    
  2. 예제 2

    입력
    7 3 2
    1 0 0 0 1 0 1
    
    예상 출력
    -1