Cod sursa(job #2578642)

Utilizator sipdavSipos David Oliver sipdav Data 11 martie 2020 13:03:25
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <bits/stdc++.h>

using namespace std;

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

const int oo = (int) (1e9);

int g, w, e[1001], c[1001], dp[1001][5001];

int main()
{
    in>>g>>w;

    for(int i = 1;i <= g;i++)
        for(int j = 1;j <= w;j++)
            dp[i][j] = oo;

    for(int i = 1; i <= g; i++)
        in>>e[i]>>c[i];

    dp[1][e[1]] = c[1];

    for(int i = 2; i <= g; i++)
    {
        for(int j = 1; j <= w; j++)
        {
            dp[i][j] = dp[i - 1][j];
            if(e[i] <= j)
                dp[i][j] = min(dp[i][j], dp[i - 1][j - e[i]] + c[i]);
            else
                dp[i][j] = min(dp[i][j], c[i]);
        }
    }

    if(dp[g][w] != oo)
        out<<dp[g][w];
    else
        out<<-1;
    return 0;
}