Pagini recente » Cod sursa (job #853990) | Cod sursa (job #2892395) | Cod sursa (job #3211348) | Cod sursa (job #497895) | Cod sursa (job #1436097)
#include<stdlib.h>
#include<fstream>
using namespace std;
#define dim 10005
ifstream in("rucsac.in");
ofstream out("rucsac.out");
struct obiect
{
int val,gr;
};
obiect v[dim];
int valmax[dim];
int n,g;
int compar(const void *a, const void *b)
{
obiect *x, *y;
x=(obiect*)a;
y=(obiect*)b;
return x->gr - y->gr;
}
int main()
{
int i,j;
in>>n>>g;
for(i=1;i<=n;++i) in>>v[i].gr>>v[i].val;
qsort(v+1, n, sizeof(obiect), compar);
//for(i=1;i<=n;++i) out<<v[i].gr<<" "<<v[i].val<<"\n"; out<<"\n";
for(i=1;i<=n;++i)
for(j=g; j>=v[i].gr; --j)
if(valmax[j-v[i].gr]+v[i].val > valmax[j]) valmax[j] = valmax[j-v[i].gr]+v[i].val;
//for(i=1;i<=g;++i) out<<valmax[i]<<" "; out<<"\n";
out<<valmax[g];
return 0;
}