Pagini recente » Cod sursa (job #358081) | Cod sursa (job #1844004) | Cod sursa (job #1870537) | Cod sursa (job #1938625) | Cod sursa (job #1093751)
#include <fstream>
#include <iostream>
#include <cstring>
using namespace std;
fstream in("rucsac.in",ios::in),out("rucsac.out",ios::out);
//pr[j]= pr max pe care il pot avea cu greutatea j
const int N=5001;
int p[N],g[N],k,n,pr[10001];
int main()
{
in>>n>>k;
for(int i=1 ; i<=n ; i++){
in>>g[i]>>p[i];
}
memset(pr , -1 , sizeof(pr));
pr[0]=0;
int i,j;
for(i=1 ; i<=n ; i++){
for(j=k-g[i] ; j>=0 ; j--){
if(pr[j]!=-1 && pr[j]+p[i]>pr[j+g[i]])
pr[j+g[i]]=pr[j]+p[i];
}
}
int max=pr[1];
for(i=2 ; i<=k ; i++)
if(pr[i]>max)
max=pr[i];
out<<max;
return 0;
}