Cod sursa(job #480857)

Utilizator dicu_dariaDaria Dicu dicu_daria Data 29 august 2010 21:56:29
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <fstream>
using namespace std;
int minim[10005],e[1005],c[1005],i,n,w,j;
int main()
{
    ifstream fi("energii.in");
    ofstream fo("energii.out");
    fi>>n>>w;
    for(i=1;i<=n;i++) fi>>e[i]>>c[i];
    for(i=1;i<=w;i++) minim[i]=int(2e9);
    minim[0]=0;
    for(i=1;i<=n;i++)
      for(j=w-1;j>=0;j--)
      if(minim[j]!=int(2e9))
      {
        if(j+e[i]>=w and minim[w]>minim[j]+c[i]) minim[w]=minim[j]+c[i]; else
        if(j+e[i]<w and minim[j+e[i]]>minim[j]+c[i]) minim[j+e[i]]=minim[j]+c[i];
      }
    if(minim[w]!=int(2e9)) fo<<minim[w]<<"\n"; else fo<<"-1\n";
    fo.close();

    return 0;
}