#2742. Gangs of Istanbull

Gangs of Istanbull

题目描述

农场的生活很艰难,当生活艰难时,你必须变得坚强。奶牛已经形成了帮派(方便地编号为1\red{1 }M\red{M})。帮派和平共处了一段时间,但现在事情真的失控了!奶牛正在争夺对大牧场的控制权。这种冲突会在几分钟内发生。

每分钟有一头牛走进田野。如果该字段为空,则认为新牛的帮派控制了该字段。如果该领域已经由新牛的帮派控制,那么牛就开始放牧。否则,正在放牧的控制团伙中的一头母牛会与新母牛对峙。两只奶牛之间的这些对抗始于一些争吵,最终不可避免地导致这对奶牛意识到它们之间的相似之处多于不同之处。

奶牛们,看到他们的错误,离开帮派和田野,到FJ\red{FJ }的小酒馆喝杯冷豆浆。如果在这次对抗之后场地是空的,那么没有帮派控制场地。贝西意识到这些对抗将如何发生。 她知道每个帮派有多少头奶牛。Bessie\red{Bessie }真的希望她的帮派在冲突结束后控制场,所有的奶牛要么在场上,要么在 FJ\red{FJ }的小酒馆。

帮助Bessie\red{Bessie }确定她的帮派(标记为 1\red{1})是否有可能最终控制该领域。如果可能的话,Bessie\red{Bessie }想知道她的帮派最后可能在场上的最大奶牛数量。输出这个数字和按字典顺序排列的最早的奶牛排序,最后得出这个数量的奶牛来自 Bessie\red{Bessie }的帮派。

n\red{n}头牛结成了m\red{m}个帮派,现在它们争夺一块草地。每个单位时间内会有一头牛来。如果草地上还没有牛或者只有自己帮派的牛,他会留在这里。但如果已经有别的 帮派的牛,它们会打一架,这使得当前牛和草地上的一头牛去找农夫思考人生。

问如何安排来的牛的编号顺序,能使一号帮派最后有最多的牛留在草地上,如果不为0\red{0,}还要输出字典序最小的一组方案。

输入格式

1\red{1 }行:

N(1<=N<=100)\red{N (1 <= N <= 100) }M(1<=M<=N)\red{M (1 <= M <= N) }用空格分隔。所有帮派中的奶牛总数为 N\red{N}。帮派总数为 M\red{M}

2..1+M\red{2..1+M }行:

(1+i)\red{(1+i) }行表示 gangi\red{gang i }中有多少成员。每个帮派至少有 1\red{1 }名成员。

输出格式

1\red{1 }行:如果 Bessie\red{Bessie }的帮派在冲突后可以控制场地,则在单行输出 YES\red{YES}。否则在一行上输出 NO\red{NO}

2\red{2 }行:如果 Bessie\red{Bessie }的帮派在冲突后可以控制场地,则输出单行场地上的最大奶牛数量。

3..2+N\red{3..2+N }行:在第 (i+2)\red{(i+2) }行输出在字典上最早的排序中出现在第 i\red{i }分钟的奶牛群的索引,在冲突。

样例

输入样例

5 3
2
1
2

输出样例

YES
1
1
3
2
3
1

提示

输入细节:

5\red{5 }头奶牛和 3\red{3 }个帮派。Bessie\red{Bessie }的帮派(帮派 1\red{1})有 2\red{2 }个成员,帮派 2\red{2 }1\red{1 }个成员,帮派 3\red{3 }2\red{2 }个成员。

输出细节:

Bessie\red{Bessie }帮派中只有一头奶牛可以在场上结束。