您的位置:首页 > 其它

【bzoj 十连测】[noip2016十连测第四场]Problem A: 天空龙(数学相关)

2016-11-17 07:52 417 查看


Problem A: [noip2016十连测第四场]天空龙

Time Limit: 10 Sec  Memory Limit: 512 MB
Submit: 43  Solved: 33

[Submit][Status][Web
Board]


Description

奥西里斯之天空龙很喜欢颜色,有一天他找到了三种颜色——红黄蓝。奥西里斯有a个红色,b个黄色,c个蓝色,

他想用画出最好的画,可是需要至少x个红色,y个黄色和z个蓝色,似乎并不够。别担心,奥西里斯会魔法!他可

以把任何两个同种颜色转化为一个另一种颜色!请问他能不能完成呢?


Input

第一行一个正整数t表示数据组数。
接下来t行每行六个整数分别表示a,b,c,x,y,z。
对于100%的数据t<=100,0<=a,b,c,x,y,z<=1000000


Output

每组数据输出一行,如果可以就输出“YES”,否则输出“NO”。


Sample Input

3
4 4 0 2 1 2
5 6 1 2 7 2
3 3 3 2 2 2


Sample Output

YES
NO
YES


HINT

【题解】【水题】 
【不过有一个小坑:每个数多出来的部分要单独计算,把多出来的部分/2能得到的新颜色加入计数器,并与总共缺少的颜色相比】

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int a,b,c,x,y,z,m,l,t;
int main()
{
int i;
scanf("%d",&t);
while(t--)
{
scanf("%d%d%d%d%d%d",&a,&b,&c,&x,&y,&z);
if(a>x) m+=(a-x)/2;
else l+=(x-a);
if(b>y) m+=(b-y)/2;
else l+=(y-b);
if(c>z) m+=(c-z)/2;
else l+=(z-c);
if(m>=l) printf("YES\n");
else printf("NO\n");
m=0; l=0;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  bzoj 数学
相关文章推荐