HZNUOJ

致命炸弹

Tags:
Time Limit:  5 s      Memory Limit:   128 MB
Submission:236     AC:31     Score:98.00

Description

    zry喜欢玩HS。HS是一款卡牌对战游戏,双方分别召唤随从和使用法术来对对方本体造成伤害,进而通过累积伤害来取得胜利。对方也能通过召唤随从来减少受到的伤害。在HS其中有一张卡是25仔,可以对除他自己外随机角色(包括所有玩家和随从)造成伤害。而他总是被这张牌深深的伤害以至于失败。于是他疯狂学习,黑掉了HS,创造了一张新卡,叫zry的小弟。zry的小弟必定会首先对对面的玩家造成K点伤害,然后开始对对方场上血最多的角色(如果玩家和随从的血一样多会优先攻击玩家,有随从的血一样多时攻击编号大的那个)造成f(M)点伤害,直到有一个角色死亡为止(即生命值<=0)。
其中f(M)=K^M%110.(M为攻击次数,例K为2,则先对玩家造成2伤害,再对对方场上血最多的角色造成4点伤害,接着造成8点伤害……直到有一个角色死亡,注意:当f(M)为0的时候不会造成0点伤害而是K点伤害)
    于是他带着这张卡进行了对战。在对战中,现在他的场上已经空无一物,手上只剩下了1张zry的小弟,而对面场上有N个随从,分别有a1…an的生命值,而对面玩家还有H的生命值,问能否通过这张牌击杀掉对面的玩家。

Input

第1行一个数T,代表有几组测试数据。
接下来每组测试数据,首先有三个整数,N,H,K,分别表示对面场上的随从数量,对面玩家的生命值,zry的小弟每次的伤害。
接下1行有N个整数,由空格隔开,表示N个随从各自的生命值。(输入的第1个随从编号为1,第2个为2,……第n个为n)。
(0<N<=100,0<H<=300,0<K<110,随从的生命值均为小于等于1000的正整数)

Output

如果可以击杀,先输出一行"Yes",再从小到大输出剩下随从的生命值,用空格隔开。
如果不能,先输出一行"No",再输出被击杀的随从的编号

Samples

input
2 1 6 1 4 2 8 3 4 6
output
Yes 1 No 2

Author

YU, Dongwei

Source

杭州师范大学第九届程序设计竞赛