Cod sursa(job #379288)

Utilizator eudanipEugenie Daniel Posdarascu eudanip Data 31 decembrie 2009 16:04:54
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include<stdio.h>
#define INF 1000000001
int n,k,d[6001];
int main ()
{
    int i,can,cos,j;
    freopen("energii.in","r",stdin);
    freopen("energii.out","w",stdout);
    scanf("%d%d",&n,&k);
    for(i=1;i<=k;i++)
        d[i]=INF;
    for(i=1;i<=n;i++)
    {
        scanf("%d%d",&can,&cos);
        for(j=k-1;j>=0;j--)
            if(j+can<=k && d[j+can]>d[j]+cos)
                d[j+can]=d[j]+cos;
            else
                if(j+can>k && d[k]>d[j]+cos)
                    d[k]=d[j]+cos;
    }
    if(d[k]==INF)
        printf("-1\n");
    else
        printf("%d\n",d[k]);
    return 0;
}