Cod sursa(job #1183712)

Utilizator hasmasandragosHasmasan Dragos hasmasandragos Data 9 mai 2014 23:39:20
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>
#include <limits.h>
#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 mini=INT_MAX,xm,ym,i,j,n,g;

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

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();
 for (i=1;i<=n;i++)
  for (j=1;j<=g;j++)
   if (ruc[i][j]>=g)
    if (j<mini)
     {mini=ruc[i][j];
      xm=i;
      ym=j;
     }
  if (mini!=INT_MAX)
   fout<<j;
  return 0;
  fout<<"-1";
    return 0;
}