Pagini recente » Cod sursa (job #1635315) | Cod sursa (job #1049852) | Cod sursa (job #57924) | Cod sursa (job #1240062) | Cod sursa (job #1089875)
#include<cstdio>
#include<cstring>
int n,s,x[10100],y[10100],m[10100],c[10100],i,j,nmax;
FILE *f,*g;
int maxim(int a,int b){
if(a>b)
return a;
else
return b;
}
int main(){
f=fopen("rucsac.in","r");
g=fopen("rucsac.out","w");
fscanf(f,"%d%d",&n,&s);
for(i=1;i<=n;i++){
fscanf(f,"%d%d",&m[i],&c[i]);
}
y[m[1]]=c[1];
for(i=2;i<=n;i++){
memcpy(x,y,sizeof(y));
for(j=s;j>=1;j--){
if(m[i]<j)
y[j]=maxim(x[j],x[j-m[i]]+c[i]);
else
y[j]=x[i];
}
}
for(i=1;i<=s;i++){
if(y[i]>nmax)
nmax=y[i];
}
fprintf(g,"%d",nmax);
fclose(f);
fclose(g);
return 0;
}