Pagini recente » Cod sursa (job #1803994) | Cod sursa (job #3195117) | Cod sursa (job #417490)
Cod sursa(job #417490)
#include <stdio.h>
int n,w,a[1001],b[1001],i,j;
long long dp[15001],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;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];
if (j+a[i]>w && dp[j+a[i]]<dp[w]) dp[w]=dp[j+a[i]];}
}
}
fprintf(g,"%lld",dp[w]);
}
else fprintf(g,"-1");
fclose(g);
return 0;
}