hdu-1721

来源:互联网 发布:良朴袜子 知乎 编辑:程序博客网 时间:2024/05/17 04:29

Bother

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 347    Accepted Submission(s): 281


Problem Description
随着物理学的发展,科学家们发现了越来越多的粒子。有一天,筱莜在做实验的时候发现了一种麻烦的粒子,因为这些粒子必须成对产生或消失。
面对这些粒子,筱莜开始头痛,怎么放置这些粒子才能让他们都消失呢?
经过很多天的努力,筱莜终于设计出了一个实验装置,它是一个的立方体,编号A,B,C,……H,如图所示,

每个顶点上都有一定数量的“麻烦”子,不同顶点初始的“麻烦”子数量可能不同。每次可以选择两个相邻的顶点,让他们同时产生或者消失。例如:每个照相机里的初始粒子数为1,0,1,0,3,1,0,0,那么一个合法的操作顺序为:EF-,EA-,AD+,AE-,DC-(EF-表示点E、F减少同样数目的粒子,+表示同样数目增加)。这样所有的粒子都消失了。
因为有时给出的粒子数不能全部消失,这事又让筱莜头痛了,现在请你帮助小兔判断一下,给出的粒子最后能不能都消失掉。
 

Input
多组输入,每组数据为8个数字(int范围内),以-1结束.
 

Output
如果能使所有粒子都消失,输出“All the seeds can be cleared away!”,否则输出“Sorry,it can't be cleared away!”。
 

Sample Input
1 0 1 0 3 1 0 028 74 11 80 75 30 63 1-1
 

Sample Output
All the seeds can be cleared away!Sorry,it can't be cleared away!
做这道题的时候表示没有一点思路,我知道我很水,我是参考网上的代码的
代码如下:
#include<stdio.h>int main(){int A,B,C,D,E,F,G,H;while(~scanf("%d",&A),A>=0){int num1=0,num2=0;scanf("%d %d %d %d %d %d %d",&B,&C,&D,&E,&F,&G,&H);num1=F+A+C+H;  //我的大概理解的意思就是:分成两部分,每部分都可以有一个点与另外三个点 num2=E+D+B+G;   //连接,若两部分,相等的话可以通过同意的相加或相减将所有的点都消除 if(num1==num2)   printf("All the seeds can be cleared away!\n");else   printf("Sorry,it can't be cleared away!\n");}return 0;}
0 0
原创粉丝点击