小明最近喜欢上了集合,他现在得到三种集合,每个集合里面都有一些工作,第一种集合规定至少选择一个工作(用 0 表示),第二种集合规定至多选择一个工作(用 1 表示),第三种集合可以随意选择工作(用 2 表示),每个工作都要花费时间,同时会得到一些奖励,现在小明的上课时间是一个固定值,但是他却想要得到最多的奖励,聪明的你可以帮助小明解决这个问题吗?
输入
第一行,输入两个数n和T,表示集合的数目以及需要工作的时间
接下来对于每个集合首先包括两个数m和s,表示集合工作的数目以及集合的性质
接下来m行,每行两个数,ci和gi,表示完成该集合该工作需要花费的时间以及可以得到的奖励。
输出
输出一个数,表示最大的奖励值。(如果不可以完成工作任务,输出“-1”)
数据范围
对于 10% 的数据, 1<= n<= 4 , 1<=T<=4 ,, 1<=m<=4
对于 50% 的数据, 1<= n<= 100 , 1<=T<=100 , 1<=m<=100
对于 100% 的数据, 1<= n<=100 , 1<=T<=100 , 1<=m<=100
1<=ci<=T,1<=gi<=1000
输入样例
3 3
2 1
2 5
3 8
2 0
1 0
2 1
3 2
4 3
2 1
1 1
输出样例
5
这是输入输出
#include<bits/stdc++.h>
using namespace std;
int a[1000];
int b[1000];
int main()
{
int n,t,m,s,sum=0;
cin>>n>>t>>m>>s;
for(int i=1;i<=9;i++){
cin>>a[i]>>b[i];
if(a[i]<=m&&b[i]<t&&b[i]>sum){
sum=i;
}
}
cout<<sum;
return 0;
}