Cod sursa(job #1774607)
| Utilizator | Data | 9 octombrie 2016 10:49:44 | |
|---|---|---|---|
| Problema | Energii | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.67 kb |
#include <fstream>
using namespace std;
ifstream f ("energii.in");
ofstream a("energii.out");
int g, w;
int G[1000],W[1000];
int d[1000][1000];
int max (int a , int b)
{
if ( a > b) return a;
if(a == b) return a;
return b;
}
int solve ()
{
for(int i = 0 ; i <g ;i++ )
{
for(int j= 0 ; j < w ; j++)
{
if(j < W[i+1]) d[i+1][j] = d[i][j];
else d[i+1][j] = max(d[i][j],d[i][j - W[i]]);
}
}
return d[g][w];
}
int main()
{
f>> g>>w;
for (int i =0; i < g; i++)
{
f>>G[i]>>W[i];
}
a<<solve();
}
