CF1070K Video Posts

题目描述

Polycarp 拍摄了 $n$ 个视频,第 $i$ 个视频的时长为 $a_i$ 秒。这些视频按时间顺序排列,即第 $1$ 个视频最早,第 $2$ 个视频次之,……,第 $n$ 个视频最晚。 现在 Polycarp 想在 Instabram 上发布恰好 $k$ 条动态($1 \le k \le n$)。每个视频只能属于一条动态。动态需要保持时间顺序,也就是说,第 $1$ 条动态包含最早的一个或多个视频,第 $2$ 条动态包含接下来的一个或多个视频,依此类推。换句话说,若第 $j$ 条动态包含 $s_j$ 个视频,则: - $s_1 + s_2 + \dots + s_k = n$($s_i > 0$); - 第 $1$ 条动态包含视频:$1, 2, \dots, s_1$; - 第 $2$ 条动态包含视频:$s_1+1, s_1+2, \dots, s_1+s_2$; - 第 $3$ 条动态包含视频:$s_1+s_2+1, s_1+s_2+2, \dots, s_1+s_2+s_3$; - …… - 第 $k$ 条动态包含视频:$n-s_k+1, n-s_k+2, \dots, n$。 Polycarp 是个完美主义者,他希望每条动态中视频的总时长都相同。 请你帮助 Polycarp 找到满足上述所有条件的正整数 $s_1, s_2, \dots, s_k$。

输入格式

第一行包含两个整数 $n$ 和 $k$($1 \le k \le n \le 10^5$)。 第二行包含 $n$ 个正整数 $a_1, a_2, \dots, a_n$($1 \le a_i \le 10^4$),其中 $a_i$ 表示第 $i$ 个视频的时长。

输出格式

如果存在解,第一行输出 "Yes"。 第二行输出 $k$ 个正整数 $s_1, s_2, \dots, s_k$($s_1 + s_2 + \dots + s_k = n$)。每条动态中视频的总时长应相等。可以证明,若存在解,则答案唯一。 如果无解,输出一行 "No"。

说明/提示

由 ChatGPT 4.1 翻译