Cod sursa(job #1450404)
Utilizator | Data | 13 iunie 2015 11:41:17 | |
---|---|---|---|
Problema | Energii | Scor | 5 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.63 kb |
#include <fstream>
#include <algorithm>
#define NMAX 1001
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int dp[NMAX][5*NMAX], i, j, n, m, E, e[NMAX], G, cost[NMAX], s=0;
int main()
{
f>>G>>E;
for (i=1; i<=G; ++i)
f>>e[i]>>cost[i], s+=e[i];
if (s<E)
{
g<<"-1";
return 0;
}
else
for (i=1; i<=G; ++i)
{
for (j=E; j>=0; --j)
{
dp[i][j]=dp[i-1][j];
if (j>=e[i])
dp[i][j]=max(dp[i][j],dp[i-1][j-e[i]]+cost[i]);
}
}
g<<dp[G][E]<<'\n';
return 0;
}