原题见:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=102271#problem/A
题目要求:两个相同的球可以变成一个任意一种球,现在问你是否能得到各种球至少给定个?所以相减后除以二,如果是3个,最多变一个,3/2=1;
代码如下:
1 #include<stdio.h> 2 int main() 3 { 4 int a[4],b[4],sum = 0,i; 5 scanf("%d %d %d",&a[0],&a[1],&a[2]); 6 scanf("%d %d %d",&b[0],&b[1],&b[2]); 7 for(i = 0; i<3; i++) 8 { 9 if((a[i] - b[i]) < 0) 10 { 11 sum += a[i] - b[i]; 12 } 13 else 14 { 15 sum += (a[i] - b[i])/2; 16 } 17 } 18 if(sum >= 0) 19 printf("Yes"); 20 else 21 printf("No"); 22 23 return 0; 24 25 }
也就是说,相对应的(a,x)(b,y)(c,z),把每一组多的,少的用正负数表示,看最终加和是否抵消即可!