Cod sursa(job #780423)

Utilizator DumitruFlorinDumitru Florin DumitruFlorin Data 20 august 2012 16:06:07
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
#include<iostream>
# define eng 10001
using namespace std;
int n,w,i,j;
int m[3][5001];
int e[1001],c[1001];
int main()
{
    ifstream fin("energii.in");
    ofstream fout("energii.out");
    fin>>n>>w;
    for(i=1;i<=n;i++)
      fin>>e[i]>>c[i];
    for(j=1;j<=w;j++)
      m[0][j]=eng;
    for(i=1;i<=n;i++)
    {for(j=1;j<=w;j++)
     {m[1][j]=m[0][j];
      if(j>e[i])
        {
            if(m[1][j]>m[0][j-e[i]]+c[i])
              m[i][j]=m[0][j-e[i]]+c[i];}
      else
       {if(m[1][j]>c[i])
          m[1][j]=c[i];}
       }
       for(j=1;j<=w;j++)
           m[0][j]=m[1][j];
     }
        if(m[1][w]!=eng)
        fout<<m[1][w];
    else
    fout<<"-1";
    return 0;
}