Cod sursa(job #1112911)

Utilizator gerd13David Gergely gerd13 Data 20 februarie 2014 10:06:16
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.96 kb
#include <fstream>
#include <cstring>


using namespace std ;

const int NMAX = 5005 ;
const int GNMAX = 10005; ;
int sol = 0 ;

ifstream cin("rucsac.in") ;
ofstream cout("rucsac.out") ;

int N, MAXG;
int C[NMAX], G[NMAX];
int CMax[GNMAX] ;

inline void Rezolvare()
{


    //memset(CMax, -1, sizeof(CMax));
    CMax[0] = 0 ;
    for(int i = 1 ;i <= N ; ++ i)
    for(int s = MAXG - G[i]; s >= 0  ; -- s)
            { if(CMax[s + G[i]]< CMax[s] + C[i])
                   {
                       CMax[s + G[i]] =  CMax[s] + C[i] ;
                          if( CMax[s+G[i]] > sol)
                    sol = CMax[s+G[i]];
                   }

               }
}


int main()
{
    cin >> N >> MAXG;
    for(int i = 1 ;i <= N ; ++ i)
        cin >> G[i] >> C[i] ;
    Rezolvare();

    cout << sol << '\n' ;
   // for(int i = 1 ; i <= MAXG ; ++ i)
     //   cout << CMax[i] << '\n';

    cin.close();
    cout.close();
    return 0 ;
}