Cod sursa(job #1514025)

Utilizator andru47Stefanescu Andru andru47 Data 30 octombrie 2015 14:54:54
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <bits/stdc++.h>
using namespace std;
const int INF=1000000;
const int NMAX=1002;
int n,k,cost[NMAX],enr[NMAX],l[NMAX],ll[NMAX];
int main()
{
    freopen("energii.in","r",stdin);
    freopen("energii.out","w",stdout);
    scanf("%d %d\n",&n,&k);
    for (int i=1 ; i <= n; ++i)
        scanf("%d %d\n",&enr[i],&cost[i]);
    for(int i=1; i<=k; ++i)
        l[i]=INF;
    for (int i=1 ; i<=n; ++i)
    {
        for (int j=1 ; j<=k ; ++j)
        {
            if(enr[i]>=j) ll[j]=min(l[j], cost[i]);
            else ll[j]=min(l[j], l[j-enr[i]] + cost[i]);
        }
        for(int kk=1; kk<=k; kk++)
            l[kk]=ll[kk];

    }
    if (ll[k]==INF)printf("-1\n");
    else printf("%d\n",ll[k]);
    return 0;
}