Cod sursa(job #2038102)
| Utilizator | Data | 13 octombrie 2017 10:42:51 | |
|---|---|---|---|
| Problema | Energii | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.64 kb |
#include<bits/stdc++.h>
using namespace std;
int i, j, e[1005], c[1005], dp[1005][1005], E, n;
int main()
{
ifstream f("energii.in");
ofstream g("energii.out");
f >> n >> E;
for(i = 1;i <= n;i++)
f >> e[i] >> c[i];
for(j = c[1];j <= E;j++)
dp[1][j] = e[1];
for(i = 2;i <= n;i++)
for(j = 1;j <= 3 * E;j++)
{
dp[i][j] = dp[i - 1][j];
if(c[i] <= j)dp[i][j] = max(dp[i][j], dp[i - 1][j - c[i]] + e[i]);
if(dp[i][j] >= E)
{
g << j;
return 0;
}
}
g << "-1";
return 0;
}
