Cod sursa(job #2201410)

Utilizator Hidden.bdBurlacu Doru Hidden.bd Data 4 mai 2018 17:55:41
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include<fstream>
#include<iostream>
#include<cmath>
#include<iomanip>

#define MAX 1e9

using namespace std;

ifstream fin("energii.in");
ofstream fout("energii.out");

//#define fin cin
//#define fout cout

int dp[1002][10002];

int main(){
    
    int generatoare, necesar, cost[1002], energie[1002];
    
    fin >> generatoare >> necesar;
    
    for( int i = 1 ; i <= generatoare ; ++i ){
        fin >> energie[i] >> cost[i];
    }
    //dp[1][2] = 4;
    
    for( int i = 0 ; i <= generatoare ; ++i ){
        for( int cw = 0 ; cw <= necesar ; ++cw ){
            dp[i][cw] = MAX;
        }
    }
    
    for( int i = 1 ; i <= generatoare ; ++i ){
        for( int cw = 0 ; cw <= necesar ; ++cw ){
            
            dp[i][cw] = dp[i-1][cw];
            
            if( energie[i] >= cw ){
                dp[i][cw] = min(dp[i][cw], cost[i]);
            }else dp[i][cw] = min(dp[i][cw], dp[i-1][cw - energie[i]] + cost[i]);
            

        }

    }
    
    if( dp[generatoare][necesar] == 1e9 ) fout << -1;
    else fout << dp[generatoare][necesar];
    
    return 0;
}