Pagini recente » Borderou de evaluare (job #1099975) | Cod sursa (job #281150) | Cod sursa (job #281160) | Monitorul de evaluare | Cod sursa (job #3343555)
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int main(){
int n,g;
vector<pair<int,int>> a;
fin>>n>>g;
for(int i=0;i<n;i++){
int w,p;
fin>>w>>p;
a.push_back({w,p});
}
sort(a.begin(),a.end(), [](auto &x,auto &y){
return x.second > y.second;
});
int sumg=0,i=0,sum=0;
while(sumg+a[i].first <= g){
sum+=a[i].second;
sumg+=a[i++].first;
}
fout<<sum<<'\n';
}