编程题
谁干的好事? ### 题目描述 A、B、C、D、E中有num个人做了好事,truth个人说真话。 A说:“我和X中有且只有一个做了好事”。 B说:“C和E中有人做了好事”。 C说:“我和D和A中有人做了好事”。 D说:“B和C都没有做好事”。 E说:“我没有做好事”。 请问有哪些人做了好事?多组方案请一行一个输出。 ### 输入描述 仅一行,先是一个整数num,接着是一个A~E的字符X,最后是一个整数truth。这三个数据用一个空格隔开,意义见题面。 ### 输出描述 每行输出一组方案,方案中按字母序输出做好事的人的代号(A~E),不要空格隔开。 如果没有合法方案,输出一行一个0即可。 ### 样例输入1 ```txt 1 E 2 ``` ### 样例输出1 ```txt 0 ``` ### 样例输入2 ```txt 2 E 2 ``` ### 样例输出2 ```txt BD BE ``` ### 数据规模和约定 规定,1≤num≤2。 ### 知识点 - 命题的表示 - 命题的真值 - 枚举 ### 提示 如果num为1,依次枚举A-E做了好事,把A-E说的话用逻辑运算符表达成命题,如果这5个命题中恰好有truth个命题为True,则是一种符合要求的方案;如果num为2,则要依次枚举AB、…、DE做了好事(要用到二重循环),然后判断每种组合是否是符合要求的方案。
查看答案
赣ICP备20007335号-2