Cod sursa(job #1412351)

Utilizator teo.serbanescuTeo Serbanescu teo.serbanescu Data 1 aprilie 2015 11:37:31
Problema Energii Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>

using namespace std;

fstream f("energii.in", ios::in);
fstream g("energii.out", ios::out);

const int INF = 0x3f3f3f3f;
const int nmax = 1010, gmax = 5010;

int a[nmax][gmax];
int n, w, e, c, i, j;

void solve()
{
    for (i = 1; i <= n; i++)
    {
        f >> e >> c;
        for (j = 1; j <= w; j++)
        {
            if (j >= e)
            {
                a[i][j] = min(a[i - 1][j], a[i - 1][j - e] + c);
            }
            else
            {
                a[i][j] = min(a[i - 1][j], c);
            }
        }
    }

}

int main()
{
    f >> n >> w;
    for (i = 0; i <= n; i++)
        for (j = 1; j <= w; j++) a[i][j] = INF;
    for (i = 0; i <= n; i++) a[i][0] = 0;
    solve();
    if (a[n][w] == INF) g << '-1';
                else g << a[n][w];
    return 0;
}