Pagini recente » Cod sursa (job #3191343) | Cod sursa (job #2470024) | Cod sursa (job #2540968) | Cod sursa (job #668091) | Cod sursa (job #295596)
Cod sursa(job #295596)
#include <stdio.h>
#define oo 2000000
FILE *f=fopen("energii.in","r"),*g=fopen("energii.out","w");
int n,w,v[5001],rez;
int solve(){
short int i,p,c,max,j;
rez=oo;
max=0;
fscanf(f,"%d%d",&n,&w);
for(i=1;i<=w;i++)v[i]=oo;
for(i=1;i<=n;i++){
fscanf(f,"%hd%hd",&p,&c);
if(p>w){
if(rez>c)rez=c;
continue;
}
else{
for(j=max;j>=0;j--){
if(v[j]<oo){
if(j+p>w){
if(rez>v[j]+c)rez=v[j]+c;
continue;
}
v[j+p]=v[j+p]<v[j]+c?v[j+p]:v[j]+c;
max=max>j+p?max:j+p;
}
}
}
}
rez=rez<v[w]?rez:v[w];
if(rez==oo)return -1;
return rez;
}
int main()
{
int i;
fprintf(g,"%d\n",solve());
// fprintf(g,"(%d)",w);
//for(i=0;i<=w;i++)fprintf(g,"%d ",v[i]);
fclose(f);
fclose(g);
return 0;
}