Cod sursa(job #1500985)
| Utilizator | Data | 12 octombrie 2015 22:22:54 | |
|---|---|---|---|
| Problema | Energii | Scor | 5 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.51 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int dp[5001],i,n,w,e[1001],c[1001],j;
int main()
{
f>>n;
f>>w;
for (i=1;i<=n;i++)
f>>e[i]>>c[i];
for (i=1;i<=w;i++) dp[i]=2000000000;
for (i=1;i<=n;i++)
{
for (j=e[i];j<=w-1;j++)
{
dp[j]=min(dp[j-e[i]]+c[i],dp[j]);
}
for (j=w-e[i];j<=w;j++)
{
dp[w]=min(dp[w],dp[j]+c[i]);
}
}
if (dp[w]!=2000000000) g<<dp[w];
else g<<-1;
return 0;
}
