Pagini recente » Cod sursa (job #521433) | Cod sursa (job #47346) | Cod sursa (job #132752) | Cod sursa (job #769014) | Cod sursa (job #417485)
Cod sursa(job #417485)
#include <stdio.h>
int n,w,a[1001],b[1001],i,j;
long long dp[5001],s;
FILE *f=fopen("energii.in","r"),*g=fopen("energii.out","w");
int main(void)
{
fscanf(f,"%d%d",&n,&w);
for (i=1;i<=n;i++)
{ fscanf(f,"%d%d",&a[i],&b[i]); s=s+a[i]; dp[a[i]]=b[i];}
if (s>=w)
{
for (i=1;i<=n;i++)
{
for (j=1;j<=w-a[i];j++)
{
if (dp[j]!=0 && (dp[j+a[i]]>dp[j]+b[i] || dp[j+a[i]]==0))
dp[j+a[i]]=dp[j]+b[i];
}
}
fprintf(g,"%lld",dp[w]);
}
else fprintf(g,"-1");
fclose(g);
return 0;
}