Cod sursa(job #1574616)

Utilizator Tomi98Osvath Tamas Tomi98 Data 20 ianuarie 2016 18:29:06
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#define INF 0x3f3f3f3f
#include<fstream>
#define nMax 1001
#define eMax 5001
using namespace std;
int N, W, C[nMax], E[nMax], dp[nMax][eMax], m;

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

int main()
{
    f >> N >> W;
    for(int i = 1; i <= N; i++)
        f >> E[i] >> C[i];

    for (int i = 0; i <= N; i++)
        for (int j = 0; j <= W; j++)
            dp[i][j] = INF;
    for (int i = 1; i <= N; i++){
    for(int j = 1; j <= W; j++){
        if(E[i] <= j)
            dp[i][j] = min(dp[i - 1][j], dp[i - 1][j - E[i]] + C[i]);
        else dp[i][j] = min(dp[i - 1][j], C[i]);
    }
    }
    if(dp[N][W] == INF) g << -1;
        else  g << dp[N][W];
    return 0;
}