Cod sursa(job #1435096)

Utilizator RaduToporanRadu Toporan RaduToporan Data 12 mai 2015 08:16:22
Problema Energii Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <cstdio>
#define inf 2000000000

int n,W,i,j,p[1005],c[1005],stot=0,minim=inf;
int s[11000000];

int main()
{
    freopen("energii.in","r",stdin);
    freopen("energii.out","w",stdout);
    scanf("%d%d",&n,&W);
    for (i=1; i<=n; i++)
    {
        scanf("%d%d",&p[i],&c[i]);
        stot=stot+p[i];
    }
    for (i=1; i<=stot; i++) s[i]=inf;
    for (i=1; i<=n; i++)
    {
        for (j=stot-p[i]; j>=0; j--)
            if (s[j]!=inf)
                if (s[j+p[i]]>s[j]+c[i]) s[j+p[i]]=s[j]+c[i];
    }
    for (i=W; i<=stot; i++) if (s[i]<minim) minim=s[i];
    if (minim==inf) printf("-1\n"); else printf("%d\n",minim);
    return 0;
}