CF1070K.Video Posts

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

Video Posts

题目描述

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

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

  • s1+s2+⋯+sk=ns_1 + s_2 + \dots + s_k = n(si>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 条动态包含视频:n−sk+1,n−sk+2,…,nn-s_k+1, n-s_k+2, \dots, n。

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

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

输入格式

第一行包含两个整数 nn 和 kk(1≤k≤n≤1051 \le k \le n \le 10^5)。
第二行包含 nn 个正整数 a1,a2,…,ana_1, a_2, \dots, a_n(1≤ai≤1041 \le a_i \le 10^4),其中 aia_i 表示第 ii 个视频的时长。

输出格式

如果存在解,第一行输出 "Yes"。
第二行输出 kk 个正整数 s1,s2,…,sks_1, s_2, \dots, s_k(s1+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

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