Pagini recente » Cod sursa (job #2883076) | Cod sursa (job #170438) | Cod sursa (job #2285481) | Cod sursa (job #1444294) | Cod sursa (job #418537)
Cod sursa(job #418537)
#include<fstream.h>
#define u (1<<30)
int e[1100],c[1100],dp[6000];
int main()
{
int n,w,i,wmax=0,j;
ifstream f("energii.in");
ofstream g("energii.out");
f>>n>>w;
for(i=1;i<=n;i++)
f>>e[i]>>c[i];
for(i=1;i<=w;i++)
dp[i]=(1<<30);
for(i=1;i<=n;i++)
for(j=wmax;j>=0;j--)
if(dp[j]!=u)
if(j+e[i]<w)
{
if(dp[j+e[i]]>dp[j]+c[i])
{
dp[j+e[i]]=dp[j]+c[i];
if(wmax<j+e[i])
wmax=j+e[i];
}
}
else
if(j+e[i]>=w)
if(dp[w]>dp[j]+c[i])
{
dp[w]=dp[j]+c[i];
if(wmax<w)
wmax=w;
}
if(dp[w]==u)
g<<"-1";
else
g<<dp[w];
return 0;
}