시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 512 MB27624157.075%

문제

You have an array of non-negative integers a1, a2, . . . , an.

You need to split it into k non-empty subsegments: [1; b1], [b1 + 1; b2], . . . , [bk−1 + 1; n].

Let us denote the sum on i-th segment as si and the maximum on i-th segment as mi. Your goal is to make |si − si+1| ≤ max(mi, mi+1) for each 1 ≤ i ≤ k − 1.

입력

The first line of the input contains two integers n and k: the size of the array and the required number of segments (3 ≤ k ≤ n ≤ 100 000).

The next line contains n integers a1, a2, . . . , an: the given array (0 ≤ ai ≤ 50 000).

출력

If splitting is possible, print “Yes” on the first line, and then print k − 1 space-separated integers b1, b2, . . . , bk−1 on the second line. The integers must satisfy 1 ≤ b1 < b2 < . . . < bk−1 < n. Additionally, the inequalities |si − si+1| ≤ max(mi, mi+1) must hold for each 1 ≤ i ≤ k − 1. If there are several possible solutions, print any one of them.

If splitting is impossible, print “No” on a single line.

예제 입력 1

5 3
17 18 17 30 35

예제 출력 1

Yes
2 4

출처

Camp > Petrozavodsk Programming Camp > Winter 2019 > Day 1: 300iq Contest J번

  • 문제를 만든 사람: 300iq
  • 데이터를 추가한 사람: gs18115