Pagini recente » Cod sursa (job #1120976) | Cod sursa (job #982392) | Cod sursa (job #2693291) | Cod sursa (job #2187071) | Cod sursa (job #92297)
Cod sursa(job #92297)
#include <stdio.h>
int p[10000];
int main ()
{
int g, w, e[1001],c[1001],i,j,t=0,max=0,min;
p[0]=1;
FILE *in=fopen("energii.in","r"), *out=fopen("energii.out","w");
fscanf(in,"%d%d",&g,&w);
for(i=0;i<g;i++)
{
fscanf(in,"%d%d",&e[i],&c[i]);
t+=e[i];
}
if(t<w)
{
fprintf(out,"-1\n");
return 0;
}
for(i=0;i<g;i++)
for(j=max;j>=0;j--)
if(p[j]&&p[j+e[i]]==0||p[j]+c[i]<p[j+e[i]])
{
p[j+e[i]]=p[j]+c[i];
if(max<j+e[i]) max=j+e[i];
}
min=p[max];
for(i=w;i<=max;i++)
if(p[i]&&p[i]<min) min=p[i];
fprintf(out,"%d\n",min-1);
return 0;
}