Cod sursa(job #1671919)

Utilizator mirunazMiruna Zavelca mirunaz Data 2 aprilie 2016 11:34:44
Problema Energii Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<cstdio>
#include<algorithm>
using namespace std;
int suma[5010],n,i,j,w,sm=0,cant,cost;
FILE *in,*out;
int main ()
{
    in=fopen("energii.in","r");
    out=fopen("energii.out","w");
    fscanf(in,"%d%d",&n,&w);
    for(i=1;i<=n;i++)
    {
        fscanf(in,"%d %d",&cant,&cost);
        for(j=w-cant;j>=0;j--)
            if(suma[j]>0 && (suma[j+cant]==0 || suma[j+cant]>suma[j]+cost))
                suma[j+cant]=suma[j]+cost;
        for(j=cant;j>=0;j--)
            if(suma[j]==0 || suma[j]>cost)
                suma[j]=cost;
    }
    if(suma[w]==0)
        suma[w]=-1;
    fprintf(out,"%d",suma[w]);
    return 0;
}