Pagini recente » Cod sursa (job #909271) | Cod sursa (job #254746) | Cod sursa (job #2245225) | Cod sursa (job #1353633) | Cod sursa (job #34006)
Cod sursa(job #34006)
#include<stdio.h>
long s, x[1000000];
int main(){
FILE*f=fopen("energii.in","r");
FILE*g=fopen("energii.out","w");
long v[1002], w[1002], s, i, j, p, nr, w1;
fscanf(f,"%ld%ld",&nr,&w1);
s=0;
for (i=0;i<nr;i++){
fscanf(f,"%ld%ld",&v[i],&w[i]);
s+=v[i];
}
if (s<w1) fprintf(g,"-1\n");
else {
/*for (i=1;i<=s;i++)
x[i]=1000000000;*/
x[0]=1;
for (i=0;i<nr;i++)
for (j=s;j>=0;j--)
if (x[j]&&((w[i]+x[j]<x[j+v[i]])||(x[j+v[i]]==0)))
x[j+v[i]]=w[i]+x[j];
p=x[w1];
for (i=w1+1;i<=s;i++)
if ((x[i]<p)&&(x[i]!=0)) p=x[i];
fprintf(g,"%ld\n",p-1);
}
fclose(f);
fclose(g);
return 0;
}