Pagini recente » Cod sursa (job #1663503) | Cod sursa (job #1609678) | Cod sursa (job #303592) | Cod sursa (job #1992077) | Cod sursa (job #20197)
Cod sursa(job #20197)
#include<stdio.h>
long int g,w,c,e,p[5000],i;
int main()
{
FILE *f=fopen("energii.in","r");
fscanf(f,"%ld%ld",&g,&w);
p[w]=1000000000;
for(i=1;i<=g;i++)
{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;
}