Cod sursa(job #1274950)

Utilizator Corina1997Todoran Ana-Corina Corina1997 Data 24 noiembrie 2014 16:46:24
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>
#include <algorithm>
using namespace std;

#define MAXN 5001
#define MAXG 10001

ifstream is("energii.in");
ofstream os("energii.out");

int c[2][MAXG], valmax;
int lp, lc = 1;
int n, S, g[MAXN], v[MAXN];

int main()
{
    is >> n >> S;
    for ( int i = 1; i <= n; i++ )
    {
        is >> g[i] >> v[i];
        valmax = max(valmax, v[i]);
    }
    for( int i = 1; i <= n; ++i, lc = !lc, lp =! lp )
    {
        for( int j = 1; j <= valmax; ++j )
        {
            c[lc][j] = c[lp][j];
            if( j >= g[i] && c[lc][j] < c[lp][j-g[i]] + v[i] )
                c[lc][j] = c[lp][j-g[i]] + v[i];
        }
    }
    os << c[lp][S];
    is.close();
    os.close();
    return 0;
}