Pagini recente » Monitorul de evaluare | Cod sursa (job #1083238) | Cod sursa (job #308712) | Statistici Iliescu Dan Andrei (IliescuDanAndrei) | Cod sursa (job #1921698)
#include<stdio.h>
#include<algorithm>
using namespace std;
#define in "rucsac.in"
#define out "rucsac.out"
FILE*f=fopen(in,"r");
FILE*g=fopen(out,"w");
int maxc,n,i,gmax,j,gi,cmaxim;
int cmax[10005];
struct obiect{
int c,g;
} ob[5005];
int main() {
fscanf(f,"%d%d",&n,&gmax);
for(i=1;i<=n;i++) fscanf(f,"%d%d",&ob[i].g,&ob[i].c);
for(i=1;i<=n;i++)
for(j=maxc;j>=0;j--)
if(cmax[j+ob[i].g]<cmax[j]+ob[i].c&&j+ob[i].g<=gmax&&(cmax[j]!=0||j==0)) {
cmax[j+ob[i].g]=cmax[j]+ob[i].c;
if(j+ob[i].g>maxc) maxc=j+ob[i].g;
}
for(i=0;i<=gmax;i++)
if(cmax[i]>cmaxim) cmaxim=cmax[i];
fprintf(g,"%d",cmaxim);
fclose(f); fclose(g);
return 0;
}