Cod sursa(job #1018623)

Utilizator Darius15Darius Pop Darius15 Data 29 octombrie 2013 20:24:20
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>

using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int mini(int a,int b)
{
    if (a<b) return a;
    return b;
}
int e[1001],c[1001],n,en,i,j,d[1001][5001];
long long s;
int main()
{
    f>>n>>en;
    for (i=0;i<=n;i++)
        for (j=0;j<=en;j++)
        d[i][j]=1<<31-1;
    for (i=1;i<=n;i++)
        f>>e[i]>>c[i],s+=e[i];
    if (s<en) g<<'-1';
    else{
    for (i=1;i<=n;i++)
        for (j=1;j<=en;j++)
        {
         d[i][j]=d[i-1][j];
         if (e[i]>=j) d[i][j]=mini(d[i][j],c[i]);
         else d[i][j]=mini(d[i][j],d[i][j-e[i]]+c[i]);
        }
        g<<d[n][en];
    }
    return 0;
}