Cod sursa(job #1219603)

Utilizator atatomirTatomir Alex atatomir Data 14 august 2014 17:36:57
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <iostream>
#include <fstream>

using namespace std;

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

long q,w,i,s,d,j;
long dp[2][5005];
long cost,ener;
const long def = 1 << 30;

void Reset(long d){
    for(long i= 0;i<=w;i++) dp[d][i] = def;
}

int main()
{
    fin >> q >> w;

    s=0; d=1;
    dp[s][0] = 0;
    for(i=1;i<=w;i++) dp[s][i] = def;

    for(i=1;i<=q;i++){
        fin >> ener >> cost;
        Reset(d);
        for(j=w;j>=0;j--){
            if(j-ener < 0) {dp[d][j] = dp[s][j];continue;}
            dp[d][j] = min(dp[d][j],dp[s][j-ener]+cost);
        }
        s ^= 1; d ^= 1;
    }

    if(dp[s][w] == def) dp[s][w] = -1;
    fout << dp[s][w];

    return 0;
}