Cod sursa(job #1018596)

Utilizator Darius15Darius Pop Darius15 Data 29 octombrie 2013 19:57:33
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <fstream>
#define nmax 1001
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int mini(int a,int b)
{
    if (a<b) return a;
}
short int c[nmax],l[nmax],i,j,n,e;
int d[nmax][5001];
long long s;
int main()
{
    f>>n>>e;
    for (i=1;i<=e;i++) d[0][j]=d[j][0]=int(1<<31-1);
    for (i=1;i<=n;i++)
    f>>c[i]>>l[i],s+=c[i];
    for (i=1;i<=n;i++)
        for (j=0;j<=e;j++)
    {
    d[i][j]=d[i-1][j];
    if (c[i]>=j) d[i][j]=mini(d[i][j],l[i]);
    else d[i][j]=mini(d[i][j],d[i][j-c[i]]+l[i]);
    }
    if (s<e) g<<'-1';
    else g<<d[n][e];
    return 0;
}