Cod sursa(job #2010610)

Utilizator NToniBoSSNicolae Tonitza NToniBoSS Data 13 august 2017 19:45:55
Problema Energii Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <stdio.h>
#include <stdlib.h>
#define C 10000
int f[C+1],c[C+1];
int main()
{
    int n,w,i,x,k,j,min;
    freopen("energii.in","r",stdin);
    freopen("energii.out","w",stdout);
    scanf("%d%d",&n,&w);
    f[0]=1;
    for(i=1; i<=n; i++)
    {
        scanf("%d%d",&x,&k);
        for(j=C-x; j>=0; j--)
            if(f[j]==1)
                if(f[j+x]==0)
                    f[j+x]=1,c[j+x]=c[j]+k;
                else
                    if(c[j+x]>c[j]+k)
                        c[j+x]=c[j]+k;
    }
    min=1000000000;
    for(i=w; i<=C; i++)
        if(c[i]!=0 && c[i]<min)
            min=c[i];
    if(min!=1000000000)
        printf("%d\n",min);
    else
        printf("-1\n");

    return 0;
}