题目大意
这道题的翻译:
- 有 a a a 袋狗粮
- 有 b b b 袋猫粮
- 有 c c c 袋通用粮
现在有 x x x 只狗, y y y 只猫,请问粮食够不够(一只猫动物至少吃一袋粮食)
思路
一道贪心题。我们可以优先选一种动物,让他们各吃一份,再轮到下一种动物。这样会避免出现实际是够的,但是一种动物把所有食物都吃光,其他动物没得吃了。
实现
- 输入数据组数。
- 预计猫够不够吃,如果不够吃,输出
no
,进入下一组。,否则继续计算。 - 先喂猫吃,让猫吃一份,如果这时狗没吃的,输
no
,进入下一组。 - 最后如果还没跳走,输出
yes
,结束这一组。
代码
#include <bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(false);
int t;
cin >> t;//输入组数
while (t--) {
int a, b, c, x, y;
cin >> a >> b >> c >> x >> y;
if (y > (b + c)) {//判断猫够不够吃
cout << "NO\n";
continue;//到下一组
}
if (b >= y) b -= y;//让猫吃
else c -= (y - b), b = 0;
if (x > (a + c)) {//如果狗不够吃
cout << "NO\n";
continue;//到下一组
}
cout << "YES\n";//完美输出
}
return 0;
}