哈夫曼编码是最小冗余码,其编码方式并不唯一

2)哈夫曼编码是最小冗余码,其编码方式并不唯一,例如,字符串“aaxuaxz”中各字符的出现的频率分别为a:4、x:2、u:1、z:1。编码{'a'=0, 'x'=10, 'u'=110, 'z'=111}和 {'a'=1, 'x'=01, 'u'=001, 'z'=000}都可以将该字符串压缩为14bits。但是编码{'a'=0, 'x'=11, 'u'=100, 'z'=101}和 {'a'=0, 'x'=01, 'u'=011, 'z'=001}并不正确,因为"aaxuaxz" 和"aazuaxax"都可以编码为00001011001001。请给出判断一个编码是否为哈夫曼编码的实现过程。
输入说明:对于每一组样例,第一行为字符个数N,第二行给出每一个字符及相应的出现次数,格式为:
c[1] f[1] c[2] f[2] ... c[N] f[N]
其中c[i]为符号,f[i]为出现次数。
接下来一行给出测试编码个数M。
之后,依次给出M组不同的编码方式,格式为:
c[i] code[i]
其中,code为0/1编码。
输出说明:每一个编码输出一行结果,是哈夫曼编码,输出“Yes”,否则“No”。
样例输入:
7
A 1 B 1 C 1 D 3 E 3 F 6 G 6
4
A 00000
B 00001
C 0001
D 001
E 01
F 10
G 11
A 01010
B 01011
C 0100
D 011
E 10
F 11
G 00
A 000
B 001
C 010
D 011
E 100
F 101
G 110
A 00000
B 00001
C 0001
D 001
E 00
F 10
G 11
样例输出:
Yes
Yes
No
No