Cod sursa(job #1774621)

Utilizator costi2Radu Canu costi2 Data 9 octombrie 2016 10:56:00
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb

#include <fstream>

 using namespace std;

 ifstream f ("energii.in");
 ofstream a("energii.out");
 int g, w;
 int G[1000],W[1000];
 int d[1000][1000];
 int max (int a , int b)
 {
     if ( a > b) return a;
     if(a == b) return a;
     return b;
 }
 int solve ()
 {
     for(int i = 0 ; i <g ;i++ )
        {
        for(int j= 0 ;  j <= w ; j++)
          {
            if(j < W[i+1]) d[i+1][j] = d[i][j];
            else d[i+1][j] = max(d[i][j],d[i][j - W[i]]+ G[i]);
          }

        }
        if( d[g][w] >= w) return d[g][w];
        else return -1;

 }
 int main()
 {
     f>> g>>w;
     for (int i =0; i < g; i++)
     {
         f>>G[i]>>W[i];
     }
     a<<solve();


 }