Cod sursa(job #2711654)

Utilizator Cosmin2004_InfoMoldoveanu Cosmin Cosmin2004_Info Data 24 februarie 2021 15:44:26
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>
#include <map>
#include <vector>

using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
const int MMAX = 10000;
int dp[MMAX + 5];

int main()
{
    int n, w, x, y, res = -1;
    fin >> n >> w;
    dp[0] = 0;
    for(int i = 1; i < w; i++) dp[i] = -1;
    for(int i = 1; i <= n; i++) {
        fin >> x >> y;
        for(int i = w - 1; i >= 0; i--) {
            if(dp[i] != -1 && i + x >= w)
                res = (res == -1 ? dp[i] + y : min(res, dp[i] + y));
            else if(dp[i] != -1)
                dp[i + x] = (dp[i + x] == -1 ? dp[i] + y : min(dp[i] + y, dp[i + x]));
        }
    }
    fout << res;
    return 0;
}