Cod sursa(job #1515079)

Utilizator moise_alexandruMoise Alexandru moise_alexandru Data 1 noiembrie 2015 09:36:55
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <iostream>
#include <fstream>
#include <string.h>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
const int maxn = 1005;
const int maxg = 5005;

const int inf = 0x3f3f3f3f;

int E[maxn];
int C[maxn];
int dp[maxn][maxg];
int main()
{
    int n, W;
    in >> n >> W;
    for(int i = 1; i <= n; i++)
        in >> E[i] >> C[i];
    for(int i = 0 ; i <= n ; ++ i)
        for(int j = 1 ; j <= W ; ++ j)
            dp[i][j] = inf;
    /// dp[i][0] = 0 V i
    for(int i = 1; i <= n; i++)
    {
        for(int j = 1; j <= W; j++)
        {
            dp[i][j] = dp[i - 1][j];
            if(j >= E[i])
                dp[i][j] = min(dp[i][j], dp[i-1][j-E[i]] + C[i]);
        }
    }
    if(dp[n][W] == inf) {
        out << "-1\n";
        return 0;
    }
    out << dp[n][W];
    return 0;
}