Cod sursa(job #1183703)

Utilizator hasmasandragosHasmasan Dragos hasmasandragos Data 9 mai 2014 23:11:00
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>
#define NMax 1010
#define GMax 5010
using namespace std;

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

struct obiect {int val,we;};
obiect a[NMax];
int ruc[NMax][GMax];

int i,j,n,g;

void citire()
{fin>>n>>g;
 for (i=1;i<=n;i++)
 fin>>a[i].we>>a[i].val;
}

void rezolvare()
{for (i=1;i<=n;i++)
   for (j=1;j<=g;j++)
     if ((a[i].we<=j) && (a[i].val+ruc[i-1][j-a[i].we]>ruc[i-1][j]))
         ruc[i][j]=a[i].val+ruc[i-1][j-a[i].we];
     else
         ruc[i][j]=ruc[i-1][j];
}

int main()
{citire();
 rezolvare();
   if (ruc[n][g]) fout<<ruc[n][g]<<'\n';
   else fout<<"-1";
    return 0;
}