Pagini recente » Cod sursa (job #225198) | Cod sursa (job #273942) | Cod sursa (job #1742539) | Cod sursa (job #413591) | Cod sursa (job #114120)
Cod sursa(job #114120)
#include <stdio.h>
int a[1001],b[1001],c[10011002],s,s2,min,n,e;
int main()
{
FILE *in,*out;
int i,j;
in=fopen("energii.in","r");
out=fopen("energii.out","w");
fscanf(in,"%d",&n);
fscanf(in,"%d",&e);
for (i=1;i<=n;i++)
{
fscanf(in,"%d%d",&a[i],&b[i]);
s+=b[i];
s2+=a[i];
}
if (s2<e)
{
fprintf(out,"-1\n");
fclose(in);
fclose(out);
return 0;
}
min=s;
for (i=1;i<=n;i++)
{
for (j=s;j>b[i];j--)
{
if (c[j-b[i]]&&c[j-b[i]]+a[i]>c[j])
{
c[j]=c[j-b[i]]+a[i];
if (c[j]>=e&&j<min)
min=j;
}
}
if (a[i]>c[b[i]])
{
c[b[i]]=a[i];
if (a[i]>=e&&b[i]<min)
min=b[i];
}
}
fprintf(out,"%d\n",min);
fclose(in);
fclose(out);
return 0;
}