Cod sursa(job #2532559)

Utilizator radumihaisirbuSirbu Radu-Mihai radumihaisirbu Data 27 ianuarie 2020 22:55:10
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <bits/stdc++.h>

using namespace std;

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

const int inf = 2e9;

const int gmax = 1e3 + 2, wmax = 5e3+2;

int dp[gmax][wmax], G, W;

struct gen
{
    int g, p;
}v[gmax];

int main()
{
    fin >> G >> W;
    for (int i=1; i<=G; ++i) fin >> v[i].g >> v[i].p;

    for (int i=1; i<=W; ++i) dp[0][i] = inf;

    for (int i=1; i<=G; ++i)
        for (int j=1; j<=W; ++j)
            if (j <= v[i].g) dp[i][j] = min(dp[i-1][j], v[i].p);
            else dp[i][j] = min(dp[i-1][j], dp[i-1][j-v[i].g] + v[i].p);

    if (dp[G][W] == inf) fout << -1;
    else fout << dp[G][W];
    return 0;
}