Cod sursa(job #2096095)

Utilizator circeanubogdanCirceanu Bogdan circeanubogdan Data 28 decembrie 2017 16:30:49
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#define DIM 1005
#define INF 1e9

using namespace std;

ifstream f("energii.in");
ofstream g("energii.out");

int n, G, e, c;

int dp[DIM][5 * DIM];

void reset(){
    for(int i = 1; i <= G; ++ i){
        dp[1][i] = INF;
        dp[0][i] = INF;
    }
}

int main()
{
    f>>n>>G;
    f>>e>>c;
    reset();
    dp[1][e] = c;
    int t = 0;
    for(int i = 2; i <= n; ++ i){
        f>>e>>c;
        for(int j = 0; j <= G; ++ j){
            if(j - e >= 0)
                dp[t][j] = min(dp[1 - t][j], dp[1 - t][j - e] + c);
            else
                dp[t][j] = dp[1 - t][j];
        }
        t = 1 - t;
    }
    t = 1 - t;
    if(dp[t][G] == INF)
        g<<-1;
    else
        g<<dp[t][G];
    return 0;
}