Cod sursa(job #1099286)

Utilizator MateiAlexandru23Matei Alexandru MateiAlexandru23 Data 5 februarie 2014 18:45:00
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>
using namespace std;

ifstream fin("energii.in");
ofstream fout("energii.out");

int ener[20001], cost[20001], C[20001][20001],G,W;

int main()
{  int i,j,k;
   int inf=2000000000;
   fin>>G>>W;
   for(i=1;i<=G;i++) fin>>ener[i]>>cost[i];

   for(i=0;i<=G;i++)
     for(j=0;j<=W;j++) C[i][j]=inf;

   for(i=1;i<=G;i++)
     for(j=1;j<=W;j++)
       if (ener[i]>=j) // energia motorului este mai mare decat am nevoie - vad daca este cazul sa-l deschid
             C[i][j]=min(cost[i],C[i-1][j]);
       else C[i][j]=min(cost[i]+C[i-1][j-ener[i]],C[i-1][j]);

   if (C[G][W]==inf) fout<<-1;
   else fout<<C[G][W];
   fin.close();
   fout.close();
   return 0;
}