Cod sursa(job #1068372)

Utilizator gabrielinelusGabriel-Robert Inelus gabrielinelus Data 28 decembrie 2013 11:59:57
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <cstdio>
#include <memory.h>
#include <algorithm>

#define Gmax 5005
#define INF 0x3f3f3f3f

using namespace std;
int N,CP,DP[Gmax];

void read()
{
    scanf("%d%d",&N,&CP);
    memset(DP,INF,sizeof(DP));
}

void dynamic()
{
    int Ei,Ci,gm = 0,mn = INF;
    DP[0] = 0;
    for(int i = 1; i <= N; ++i)
    {
        scanf("%d%d",&Ei,&Ci);
        for(int j = CP; j - Ei >= 0 ; --j)
            if(DP[j] > DP[j-Ei] + Ci)
                DP[j] = DP[j-Ei] + Ci;
        if(Ei > CP)
            mn = min ( mn , Ci);
    }
    int ans = min ( DP[CP], mn);
    if(ans != INF)
        printf("%d\n",ans);
    else
        printf("-1\n");
}

int main()
{
    freopen("energii.in","r",stdin);
    freopen("energii.out","w",stdout);

    read();
    dynamic();

    return 0;
}