Cod sursa(job #1729939)

Utilizator KronSabau Valeriu Kron Data 15 iulie 2016 21:17:14
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <iostream>
#include <fstream>
#include <climits>
#include <algorithm>
using namespace std;
const int INF=0x3f3f3f3f;
ifstream fin("Energii.in");
ofstream fout("Ennergii.out");

int T[1001][5001],G,W,e[100],c[100];

void citire()
{
    fin >> G >> W;
    for(int i=1;i<=G;i++)
        fin >> e[i] >> c[i];
}

int rez()
{
    int i,j;
    for(i=0;i<=G;i++)
        for(j=1;j<=W;j++)
            T[i][j]=INF;
    for(i=1;i<=G;i++)
    {
        for(j=1;j<=W;j++)
        {
            T[i][j] = T[i - 1][j];
            if(e[i]<=j)
            {
                T[i][j]=min(T[i][j],c[i]+T[i-1][j-e[i]]);
            }else T[i][j]=min(T[i][j],c[i]);



        }
    }
    if(T[G][W]==INF)
        return -1;
    else return T[G][W];


}


int main()
{
    citire();
    fout << rez()<< "\n";

    fin.close();
    fout.close();
    return 0;
}