Cod sursa(job #2003847)

Utilizator SCatalinStanciu Catalin SCatalin Data 24 iulie 2017 09:35:23
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const int INF = 10005;

int G[1001][5001],E[1001],C[1001];

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 = 0; j<=W; j++)
            G[i][j] = INF;
    for (int i = 1; i<=n; i++)
        for (int j = 0; j<=W; j++)
        {
            if (E[i]>=j)
                G[i][j] = min(C[i],G[i-1][j]);
            else
                G[i][j] = min(G[i-1][j-E[i]]+C[i],G[i-1][j]);
        }
    if (G[n][W] == INF)
        out << "-1";
    else
        out << G[n][W];
}