Cod sursa(job #2779840)

Utilizator andreiiorgulescuandrei iorgulescu andreiiorgulescu Data 5 octombrie 2021 09:46:14
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <bits/stdc++.h>

using namespace std;

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

int main()
{
    int cmin[5005],g,w,eg[1005],cg[1005];
    in >> g >> w;
    for (int i = 1; i <= g; i++)
        in >> eg[i] >> cg[i];
    for (int i = 1; i <= w; i++)
        cmin[i] = 1e9;
    for (int i = 1; i <= g; i++)
    {
        for (int j = w; j >= 1; j--)
        {
            if (j > eg[i])
                cmin[j] = min(cmin[j],cmin[j - eg[i]] + cg[i]);
            else
                cmin[j] = min(cmin[j],cg[i]);
        }
    }
    if (cmin[w] != 1e9)
        out << cmin[w];
    else
        out << -1;
    return 0;
}
/**
cmin[w] = {1e9,...,1e9};
for (i = 1; i <= g; i++)
{
    for (int j = w; j >= 1; j--)
    {
        if (j > eg[i])
            cmin[j]=min(cmin[j],cmin[j - eg[i]] + cg[i]);
        else
            cmin[j]=min(cmin[j],cg[i]);
    }
}
**/