Cod sursa(job #559124)

Utilizator palcuiealexAlex Palcuie palcuiealex Data 17 martie 2011 17:01:10
Problema Energii Scor 85
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <iostream>
#include <cstdio>

using namespace std;

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

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

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

    int i,j,energyCost,energyProduced,localEnergy=0;

    cin>>nGenerators>>minEnergy;

    fill(dynamic[0],dynamic[0]+EMAX,VMAX);

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

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

    return 0;
}