Pagini recente » Cod sursa (job #3133258) | Cod sursa (job #1477475) | Cod sursa (job #1341565) | Cod sursa (job #1082798) | Cod sursa (job #933571)
Cod sursa(job #933571)
#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,a,b,nre=0;
fscanf(in,"%d%d",&n,&W);
for(int i=1;i<=n;++i){
fscanf(in,"%d%d",&a,&b);
if(a<=W){
P[++nre]=a;
C[nre]=b;
}
}
int SS=N*6;
for(int i=0;i<=W;++i) dim[i]=SS;
dim[0]=0;
for(int i=1;i<=nre;++i){
for(int j=W-P[i]; j>=0; --j){
if(dim[j]!=SS)
if(dim[j+P[i]]>dim[j]+C[i])
dim[j+P[i]]=dim[j]+C[i];
}
}
if(dim[W]==SS)
fprintf(out,"-1");
else fprintf(out,"%d",dim[W]);
return 0;
}