测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A2201. 帮派

编程题 提高+/省选-
知识点

题目描述

n头牛结成了m个帮派,现在它们争夺一块草地。每个单位时间内会有一头牛来。如果草地上还没有牛或者只有自己帮派的牛,他会留在这里。但如果已经有别的帮派的牛,它们会打一架,这使得当前牛和草地上的一头牛去找农夫思考人生。问如何安排来的牛的编号顺序,能使一 号帮派最后有最多的牛留在草地上,如果不为0,还要输出字典序最小的一组方案。

输入格式

* 第 1 行:N (1 <= N <= 100) 和 M (1 <= M <= N) 用空格分隔。所有帮派中的奶牛总数将为 N。帮派总数为M。

* 第 2..1+M 行:(1+i)行表示帮派 i 中有多少成员。每个帮派至少有 1 名成员。

输出格式

* 第 1 行:如果 Bessie 的帮派可以在冲突后控制该领域,则在单行上输出 YES。否则,在单行上输出 NO。

* 第 2 行:如果 Bessie 的帮派可以在冲突后控制田地,则输出单行上可以在田地上的最大奶牛数量。

* 第 3..2+N 行:在第 (i+2) 行输出第 i 分钟出现的牛帮索引

字典上最早的排序,在冲突后将最大数量的奶牛留在田间。

输入输出样例

输入 #1
5 3 
2 
1 
2 
输出 #1
YES 
1 
1 
3 
2 
3 
1 

说明/提示

有 5 头牛和 3 个帮派。贝茜的帮派(帮派 1)有 2 名成员,帮派 2 有 1 名成员,帮派 3 有 2 名成员。

贝茜团伙中只有一头奶牛可以上战场。
上一题 去做题 下一题