Cod sursa(job #1226023)

Utilizator ZenusTudor Costin Razvan Zenus Data 4 septembrie 2014 13:03:13
Problema Energii Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <cstdio>
#include <climits>
#include <algorithm>

using namespace std;

#define NMAX 10000001

int energy,cost,i,j,N,M,VMAX,MIN;
int marked[NMAX];

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

scanf("%d%d",&N,&M);

for (i=1,MIN=INT_MAX;i<=N;++i)
{
    scanf("%d%d",&energy,&cost);

    for (j=M;j>=0;--j)
    if (marked[j] || !j)
    {
        if (marked[j+energy]==0) marked[j+energy]=INT_MAX;

        marked[j+energy]=min(marked[j+energy],marked[j]+cost);

        if (j+energy>=M) MIN=min(MIN,marked[j+energy]);
    }
}

if (MIN==INT_MAX) MIN=-1;

printf("%d\n",MIN);

return 0;
}