Pagini recente » Cod sursa (job #665) | Cod sursa (job #66956) | Cod sursa (job #780326) | Cod sursa (job #2726390) | Cod sursa (job #27489)
Cod sursa(job #27489)
#include<stdio.h>
long int g,w,c,e,p[5000],i,j;
int main()
{
FILE *f=fopen("energii.in","r");
fscanf(f,"%ld\n%ld",&g,&w);
p[w]=1000000000;
for(j=1;j<=g;j++)
{fscanf(f,"%ld%ld",&e,&c);
if(e>=w) {if(c<p[w]) p[w]=c;}
else { for(i=w-e;i<w;i++)
if(p[i]) if((p[i]+c)<p[w]) p[w]=p[i]+c;
for(i=w-e-1;i>=1;i--)
if(p[i]) {if(p[i+e]==0) p[i+e]=p[i]+c;
else if((p[i]+c)<p[i+e]) p[i+e]=p[i]+c;
}
if(p[e]==0)p[e]=c;
else if(p[e]>c) p[e]=c;
}
}
fclose(f);
f=fopen("energii.out","w");
if(p[w]==1000000000) fprintf(f,"-1\n");
else fprintf(f,"%ld",p[w]);
fclose(f);
return 0;
}