ACM-竞赛预测

来源:互联网 发布:淘宝客服代码 编辑:程序博客网 时间:2024/06/05 15:40

参考:http://blog.csdn.net/ssw_1990/article/details/25737237

题目:

3位老师对某次学生竞赛进行了预测,他们的预测如下:

甲说:学生A得第一名,学生B得第三名。
乙说:学生C得第一名,学生D得第四名。
丙说:学生D得第二名,学生A得第三名。

竞赛结果表明,它们各说对了一半,说错了一半,并且无名次并列,试编程输出a,b,c,d各自的名次。

解析:

起初准备寻找一种一般性的算法,也是穷举法,但尝试了很多次,发现都没有得到正确的结果,存在很多的bug,自己刚开始做ACM,水平还是很有限,很多问题都没有考虑到。最后只能参考别人方法做出来了。希望自己AC过一定的题量之后再来做这道题,能够把我现在没有实现的算法完成。

#include <stdio.h>int main(){int a, b, c, d;for (a = 1; a <= 4; a++){for (b = 1; b <= 4; b++){if(a != b){for (c= 1; c <= 4; c++){d = 10 - a - b -c;//printf("a = %d, b=%d, c=%d, d= %d\n",a, b, c,d);if ( ( (a == 1) + (b == 3) ==1) && ( (c ==1) + (d ==4) ==1 ) && ( (a==3) + (d ==2) ==1 ) ){printf("The ruslut is :\n\t\t a:%d, b:%d, c:%d, d:%d\n", a, b, c, d);}}}}}printf("Conditions for too little\n");return 0;}


0 0