Cod sursa(job #1764405)

Utilizator CalarisPredut Denis Stefanita Calaris Data 25 septembrie 2016 14:52:58
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <fstream>
#include <vector>

using namespace std;

#define MAX 1001
#define intM 32767

int energy[MAX], cost[MAX], ansArr[MAX][MAX];

int main()
{
    int G,W;
    fstream f("energii.in",ios::in);
    ofstream g("energii.out");

    int i,j;

    f>>G>>W;

    for(i=1;i<=G;++i)
        {
        f>>energy[i]>>cost[i];
        }

    for(i = 0; i <=G ; ++i)
        {
        for(j = 0; j <=W; ++j)
            {
            if(!i || !j) ansArr[i][j] = intM;
            else
                {
                    ansArr[i][j] = ansArr[i-1][j];
                    if(j>energy[i])
                    {
                    ansArr[i][j] = min(ansArr[i][j],cost[i] + ansArr[i-1][j-energy[i]]);
                    }
                    else
                    {
                    ansArr[i][j] = min(ansArr[i][j],cost[i]);
                    }
                }
            }
        }

    if(ansArr[G][W] == intM) g<<"-1";
    else g<<ansArr[G][W];

    return 0;
}