Cod sursa(job #1605840)

Utilizator dorin31Geman Dorin Andrei dorin31 Data 19 februarie 2016 15:43:54
Problema Energii Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <iostream>
#include <fstream>

#define gMax 1001
#define wMax 5001
#define oo 1<<30

using namespace std;

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

struct gen { int e,c;}v[gMax];
int d[2][wMax];
int g,w;

void citire()
{
    fin>>g>>w;
    for (int i=1; i<=g; ++i)
        fin>>v[i].e>>v[i].c;
}

void pd()
{
    int line=0;
    for (int i=0; i<2; ++i)
        for (int j=1; j<=w; ++j)
            d[i][j]=oo;
    for (int i=1; i<=g; ++i, line=1-line)
        for (int j=1; j<=w; ++j)
        {
            d[1-line][j]=d[line][j];
            if (j>=v[i].e)
                d[1-line][j]=min(d[1-line][j],d[line][j-v[i].e]+v[i].c);
            else
                d[1-line][j]=min(d[1-line][j],v[i].c);
        }
    fout<<d[line][w];
}

int main()
{
    citire();
    pd();
    return 0;
}