Cod sursa(job #928653)

Utilizator Vally77FMI Calinescu Valentin Gelu Vally77 Data 26 martie 2013 16:47:38
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
using namespace std;
ifstream ka("energii.in");
ofstream ki("energii.out");
int w[1001],p[1001],n,g,s,d[1001][5001];
int minim(int t,int k)
{
    if(t<=k)
    return t;
    return k;
}
int main()
{
    ka>>n>>g;
    for(int i=1;i<=n;i++)
    {ka>>p[i]>>w[i];
    s+=p[i];}
    if(s<g)
    ki<<"-1";
    else
    {
        for(int i=1;i<=g;i++)
        d[0][i]=1<<30;
        for(int i=1;i<=n;i++)
        d[i][0]=1<<30;
    for(int j=1;j<=n;j++)
    {
        for(int cw=1;cw<=g;cw++)
        {
            if(p[j]<cw)
            d[j][cw]=minim(d[j-1][cw],d[j-1][cw-p[j]]+w[j]);
            else
            d[j][cw]=minim(d[j-1][cw],w[j]);
        }
    }
    ki<<d[n][g];
    }
}