A. Got Any Grapes?
题目大意:
三个人分食一定量的葡萄,Andrew, Dmitry and Michal 各自有各自的口味和要求。
问准备的各葡萄种类的数量能否满足他们的要求。
Andrew 只吃绿色葡萄;
Dmitry 不吃红葡萄;
Michal 来者不拒;
那么我们依次满足他们的要求,优先满足Andrew,D然后用剩余量去比较即可。
AC代码:
#include <iostream>
using namespace std;
int x,y,z,a,b,c;
int main() {
cin>>x>>y>>z;
cin>>a>>b>>c;
if(a+b+c<x+y+z) {
cout<<"NO"<<endl;
} else {
if(a>=x&&a-x+b>=y) {
cout<<"YES"<<endl;
} else {
cout<<"NO"<<endl;
}
}
return 0;
}
B. Yet Another Array Partitioning Task
题目大意:
给定一组数列,要求分割成k段,取k段中最大的m个数字之和。
求这个最大和以及分割的数组下标(从1开始记录)
思路:
最大和很好求出,sort一遍后直接加上最大的m*k个数字即可得到;