Problem-1001
完成情况
执行代码:
#include <stdio.h> #define EOF -1 int main(){ int i, j; while (scanf("%d %d", &i, &j) != EOF){ printf("%d ", i + j); } return 0; }
Problem-1002(undetermined)
Problem-1003
简单描述:
有一个游戏,规则是这样,有一堆气球100个,标号1到100,有两个人参与.一开始,两个人就疯狂的踩气球,时间到就结束了,把他们各自踩破的球上的编号乘起来,分别是M,N,那么排名自然揭晓了
可是分数低的人不服气,想申诉.现在问题来了,怎么申诉呢?因为每个标号的球只有一个,所以加入B踩破的话,A就没办法踩了,申诉想要产生的矛盾就在这儿.现在假如分数是 343 49 ,343可以是踩了 7和49,49只能是踩49,他们两都同时必须要踩这个49,那么就产生矛盾了.所以49赢了.还有要是有人的分数,不能由1到100的数的成绩的出,算说假话,如果两个人都说假话,还是分高的赢.
有三种情况:
(1)A,B没有矛盾,那么A赢
(2)A,B怎么都会有矛盾,而且B说的是真话,那么B赢
(3)A,B怎么都会有矛盾,而且B说的是假话,那么A赢
完成情况
执行代码:
#include <stdio.h> #define EOF -1 int flagA, flagB; void DFS(int x, int y, int z){ if (x == 1 && y == 1){ flagA = 1; return ; } if (y == 1){ flagB = 1; } while (z < 100){ z++; if (x % z == 0){ DFS(x/z, y, z); if (flagA) return ; } if (y % z == 0){ DFS(x, y/z, z); if (flagA) return ; } } } int main(){ int a, b; while (scanf("%d %d", &a, &b) != EOF){ if (a < b){ int temp = a; a = b; b = temp; } flagA = flagB = 0; DFS(a, b, 1); if (flagA == 0 && flagB == 1) printf("%d ", b); else printf("%d ", a); } return 0; }