Pagini recente » Cod sursa (job #2629514) | Cod sursa (job #315664) | Cod sursa (job #2057576) | Cod sursa (job #2138813) | Cod sursa (job #933569)
Cod sursa(job #933569)
#include<cstdio>
using namespace std;
FILE *in,*out;
const int N = 1010;
int P[N],dim[N*6],C[N];
int main(){
in=fopen("energii.in","r");
out=fopen("energii.out","w");
int n,W;
fscanf(in,"%d%d",&n,&W);
for(int i=1;i<=n;++i) fscanf(in,"%d%d",&P[i],&C[i]);
for(int i=0;i<=W;++i) dim[i]=N*6;
for(int i=1;i<=n;++i){
for(int j=W-P[i]; j>=0; --j){
if(dim[j])
if(dim[j+P[i]]>dim[j]+C[i])
dim[j+P[i]]=dim[j]+C[i];
}
if(P[i]<=W && C[i]<dim[P[i]])
dim[P[i]]=C[i];
}
if(dim[W]==N*6)
fprintf(out,"-1");
else fprintf(out,"%d",dim[W]);
return 0;
}