Cod sursa(job #1507812)
| Utilizator | Data | 21 octombrie 2015 22:19:47 | |
|---|---|---|---|
| Problema | Energii | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.64 kb |
#include <iostream>
#include <fstream>
#define NMAX 1003
#define GMAX 5001
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
int n,c,g[NMAX],p[NMAX],d[NMAX][GMAX];
int main()
{
in >> n >> c;
for(int i=1;i<=n;i++)
{
in >> g[i] >> p[i];
}
for(int i=1;i<=n;i++)
{
for(int k=1;k<=c;k++)
{
d[i][k] = d[i-1][k];
if(k-g[i]>=0 && d[i][k]<d[i-1][k-g[i]] + p[i])
{
d[i][k] = d[i-1][k-g[i]] + p[i];
}
}
}
if(c<=d[n][c]) out << d[n][c];
else out << -1;
return 0;
}
