Pagini recente » Borderou de evaluare (job #381818) | Cod sursa (job #2641988) | Borderou de evaluare (job #827557) | Cod sursa (job #592762) | Cod sursa (job #2522230)
#include <fstream>
#include <iostream>
#include <algorithm>
using namespace std;
#define dmax 5001
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
struct Obiect{
int g, val;
}v[dmax];
bool cmp(Obiect a, Obiect b){
if (a.val<b.val)
return 1;
if (a.val==b.val){
if (a.g<b.g)
return 1;
else
return 0;
}
return 0;
}
int main(){
int n, g, i, rez=0;
fin>>n>>g;
for (i=1;i<=n;i++)
fin>>v[i].g>>v[i].val;
sort(v+1, v+n+1, cmp);
for (i=n;i>0;--i)
if (g-v[i].g>=0){
g-=v[i].g;
rez+=v[i].val;
}
cout<<rez;
}