Cod sursa(job #2151802)

Utilizator Anastasia11Susciuc Anastasia Anastasia11 Data 4 martie 2018 22:07:42
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>
#include <cstring>
#include <climits>
using namespace std;

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

int m[1002][5005],gr[1002],c[1002],gmax,w,i,j;

int main()
{
    f>>gmax>>w;
    for(i=1; i<=gmax; i++)
    {
        f>>gr[i]>>c[i];
    }
    for(i=1; i<=gmax; i++)
    {
        m[i][0]=2000000000;
    }
    for(i=1; i<=w; i++)
    {
        m[0][i]=2000000000;
    }
    for(i=1; i<=gmax; i++)
    {
        for(j=1; j<=w; j++)
        {
            m[i][j]=m[i-1][j];
            if(j <= gr[i])
            {
                m[i][j]=min(m[i][j],c[i]);
            }
            else
            {
                m[i][j]=min(m[i][j],m[i-1][j-gr[i]]+c[i]);
            }
        }
    }
    if(m[gmax][w]==2000000000)
    {
        g<<"-1";
    }
    else
    {
        g<<m[gmax][w];
    }
    return 0;
}