만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

사탕

면접 대비

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

요약
앞 F칸의 사탕 합을 T 이상으로 만드는 데 필요한 최소 인접 교환 횟수를 구합니다. 불가능하면 NO를 출력합니다.
난이도

보통10점 중 6점

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

문제

고대 도시 이카에는 상상을 초월하는 부를 가진 궁전이 있다고 전해진다. 궁전 안에는 세계 각지에서 모은 사탕 상자 NN개가 늘어선 복도가 있다. 지나가는 여행자는 사탕의 무게만큼 금을 내면 원하는 만큼 사탕을 가져갈 수 있다.

상자는 왼쪽에서 오른쪽으로 00번부터 N−1N-1번까지 번호가 매겨져 있다. ii번 상자에는 aia_i 단위의 사탕이 남아 있으며, aia_i는 음이 아닌 정수다.

궁전의 수호자인 당신은 사탕이 많은 상자가 입구에 더 가까이 오도록 상자들을 옮기려 한다.

배열 a0,a1,…,aN−1a_0, a_1, \ldots, a_{N-1}과 수 FF, TT가 주어진다. 한 번의 연산으로 배열에서 인접한 두 원소를 서로 바꿀 수 있다. 배열의 처음 FF개 원소의 합이 TT 이상이 되도록 만드는 데 필요한 최소 연산 횟수는 얼마인가?

입력

첫 줄에 세 정수 NN, FF, TT가 주어진다.

둘째 줄에 NN개의 정수 a0,a1,…,aN−1a_0, a_1, \ldots, a_{N-1}이 주어진다.

출력

연산으로 목표를 달성할 수 없으면 NO를 출력한다. 가능하면 필요한 최소 연산 횟수를 한 개의 정수로 출력한다.

제한

  • 1≤N≤1001 \le N \le 100.
  • 1≤F≤N1 \le F \le N.
  • 0≤T≤10110 \le T \le 10^{11}.
  • i=0,1,…,N−1i = 0, 1, \ldots, N-1에 대해 0≤ai≤1090 \le a_i \le 10^9.

입력 값은 32비트 정수에 들어가지 않을 수 있으므로 오버플로에 주의한다.

힌트

첫 번째 예제에서는 처음 두 원소의 합이 2727 이상이어야 한다. 44와 2020을 한 번 바꾸면 배열이 10 20 4 6 3 3이 되고, 처음 두 원소의 합은 10+20=30≥2710+20=30\ge 27이 된다.

두 번째 예제에서는 00을 배열의 맨 끝까지 옮겨야 하며, 이는 3번의 교환이 필요하다.

세 번째 예제에서는 처음 두 원소의 합을 100100 이상으로 만들 수 없다. 가능한 최댓값은 60+30=9060+30=90이다.

예제4

  1. 예제 1

    입력
    6 2 27
    10 4 20 6 3 3
    
    예상 출력
    1
    
  2. 예제 2

    입력
    6 5 5000000000
    1000000000 1000000000 0 1000000000 1000000000 1000000000
    
    예상 출력
    3
    
  3. 예제 3

    입력
    3 2 100
    20 30 60
    
    예상 출력
    NO
    
  4. 예제 4

    입력
    1 1 100
    100
    
    예상 출력
    0