Pagini recente » Cod sursa (job #2318149) | Cod sursa (job #2493427) | Cod sursa (job #1441027) | Cod sursa (job #2269246) | Cod sursa (job #2812476)
#include<fstream>
#include<climits>
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
long long dp[5002];
struct centrala
{
int energie,cost;
}v[1002];
int main()
{
long long i,j,gr,w,mini=INT_MAX,sum=0;
f>>gr>>w;
for(i=1;i<=gr;i++)
{
f>>v[i].energie>>v[i].cost;
sum+=v[i].energie;
}
for(j=1;j<=sum;j++)
dp[j]=1e18;
dp[0]=0;
dp[v[1].energie]=v[1].cost;
for(i=2;i<=gr;i++)
{
for(j=sum-v[i].energie;j>=0;j--)
{
dp[j+v[i].energie] = min(dp[j+v[i].energie],dp[j]+v[i].cost);
}
}
for(i=w;i<=sum;i++)
{
if(dp[i]<mini)
mini=dp[i];
}
if(mini==INT_MAX)
g<<-1;
else
g<<mini;
return 0;
}