Pagini recente » Cod sursa (job #685647) | Cod sursa (job #2265207) | Cod sursa (job #2772738) | Cod sursa (job #1547541) | Cod sursa (job #1112911)
#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 ;
}