问题描述:设有n个程序{1,2…n}要存放在长度为L的磁带上。每个程序都有自己存放的所需要的长度,问怎么能存放更多的程序?
vector和sort真是好用啊~。
输入实例:
6 50 //6代表多少个程序,50代表磁带的长度。
2 3 13 8 80 20
输出实例:5
代码如下:
#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
//using std::vector;
int greedy(vector<int>F,int m){
int i=0;
int sum=0;
int n=F.size();
sort(F.begin(),F.end());
while(i<n){
sum+=F[i];
if(sum<=m)i++;
else return i;
}
return n;
}
int main()
{
int n,L,i,num;
cin>>n>>L;
vector<int>F;
for(i=0;i<n;i++){
cin>>num;
F.push_back(num);
}
cout<<greedy(F,L)<<endl;
cout << "Hello world!" << endl;
return 0;
}