Cod sursa(job #559061)

Utilizator palcuiealexAlex Palcuie palcuiealex Data 17 martie 2011 16:34:04
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <iostream>
#include <cstdio>

using namespace std;

const int GMAX=1024;
const int EMAX=5012;

int nGenerators,minEnergy;
int dynamic[GMAX][EMAX];

int main()
{
    freopen("energii.in","r",stdin);
    freopen("energii.out","w",stdout);

    int i,j,energyCost,energyProduced;

    cin>>nGenerators>>minEnergy;

    for (i=1; i<=nGenerators; ++i){
    	cin>>energyCost>>energyProduced;
    	for (j=1; j<=minEnergy; ++j){
    		if (j <= energyCost){
                dynamic[i][j]= max (dynamic[i-1][j], energyProduced);
    		}
    		else if(dynamic[i-1][j-energyCost]){
    		    dynamic[i][j]= max (dynamic[i-1][j], energyProduced+dynamic[i][j-energyCost]);
    		}
    	}
    }

    cout<<dynamic[nGenerators][minEnergy]<<'\n';

    return 0;
}