Cod sursa(job #2734430)

Utilizator As932Stanciu Andreea As932 Data 31 martie 2021 20:54:04
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <bits/stdc++.h>

using namespace std;

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

const int gmax = 1e3 + 1;
const int inf = 1e9;

int g, w, eg[gmax], cg[gmax], dp[gmax][5 * gmax];

void read(){
    fin >> g >> w;

    for(int i = 1; i <= g; i++)
        fin >> eg[i] >> cg[i];
}

void init(){
    for(int i = 0; i <= w; i++)
        dp[0][i] = inf;
}

void solve(){
    for(int i = 1; i <= g; i++)
        for(int j = 1; j <= w; j++){
            if(j <= eg[i])
                dp[i][j] = min(dp[i - 1][j], cg[i]);
            else
                dp[i][j] = min(dp[i - 1][j], dp[i - 1][j - eg[i]] + cg[i]);
        }

    if(dp[g][w] >= inf)
        fout << -1;
    else
        fout << dp[g][w];
}

int main()
{
    read();
    init();
    solve();

    return 0;
}