Cod sursa(job #1020622)

Utilizator Corneliu10Dumitru Corneliu Corneliu10 Data 2 noiembrie 2013 13:27:29
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include<cstdio>
#include<iostream>
using namespace std;
int n,w,E,C,Max,sol=1<<30,v[15005];
int main()
{
    int i,j;
    freopen("energii.in","r",stdin);
    freopen("energii.out","w",stdout);
    scanf("%d%d",&n,&w);
    for (i=1;i<=15000;++i) v[i]=1<<30;
    for (i=1;i<=n;++i)
        {
            scanf("%d%d",&E,&C);
            Max=max(Max,E);
            for (j=w+Max;j>=E;--j)
                if (v[j-E]+C<v[j])
                    v[j]=v[j-E]+C;
        }
    for (i=w;i<=w+Max;++i)
        sol=min(sol,v[i]);
    if (sol==1<<30) printf("-1\n");
    else printf("%d\n",sol);
    return 0;
}