CF1070K.Video Posts

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Video Posts

题目描述

Polycarp 拍摄了 nn 个视频,第 ii 个视频的时长为 aia_i 秒。这些视频按时间顺序排列,即第 11 个视频最早,第 22 个视频次之,……,第 nn 个视频最晚。

现在 Polycarp 想在 Instabram 上发布恰好 kk 条动态(1kn1 \le k \le n)。每个视频只能属于一条动态。动态需要保持时间顺序,也就是说,第 11 条动态包含最早的一个或多个视频,第 22 条动态包含接下来的一个或多个视频,依此类推。换句话说,若第 jj 条动态包含 sjs_j 个视频,则:

  • s1+s2++sk=ns_1 + s_2 + \dots + s_k = nsi>0s_i > 0);
  • 11 条动态包含视频:1,2,,s11, 2, \dots, s_1
  • 22 条动态包含视频:s1+1,s1+2,,s1+s2s_1+1, s_1+2, \dots, s_1+s_2
  • 33 条动态包含视频:s1+s2+1,s1+s2+2,,s1+s2+s3s_1+s_2+1, s_1+s_2+2, \dots, s_1+s_2+s_3
  • ……
  • kk 条动态包含视频:nsk+1,nsk+2,,nn-s_k+1, n-s_k+2, \dots, n

Polycarp 是个完美主义者,他希望每条动态中视频的总时长都相同。

请你帮助 Polycarp 找到满足上述所有条件的正整数 s1,s2,,sks_1, s_2, \dots, s_k

输入格式

第一行包含两个整数 nnkk1kn1051 \le k \le n \le 10^5)。
第二行包含 nn 个正整数 a1,a2,,ana_1, a_2, \dots, a_n1ai1041 \le a_i \le 10^4),其中 aia_i 表示第 ii 个视频的时长。

输出格式

如果存在解,第一行输出 "Yes"。
第二行输出 kk 个正整数 s1,s2,,sks_1, s_2, \dots, s_ks1+s2++sk=ns_1 + s_2 + \dots + s_k = n)。每条动态中视频的总时长应相等。可以证明,若存在解,则答案唯一。

如果无解,输出一行 "No"。

说明/提示

由 ChatGPT 4.1 翻译

样例

6 3
3 3 1 4 1 6
Yes
2 3 1 
3 3
1 1 1
Yes
1 1 1 
3 3
1 1 2
No
3 1
1 10 100
Yes
3 

在线编程 IDE

建议全屏模式获得最佳体验