Pagini recente » Cod sursa (job #3127549) | Cod sursa (job #1691541) | Cod sursa (job #2214675) | Cod sursa (job #1846586) | Cod sursa (job #1454219)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int N, G;
struct Obiect
{
int w, p;
}A[5001];
int pmax;
int Gcur, Pcur;
void Back(int k)
{
if( k == N + 1 )
{
if( pmax < Pcur )
pmax = Pcur;
return;
}
if( Gcur + A[k].w <= G )
{
Gcur += A[k].w;
Pcur += A[k].p;
Back(k + 1);
Gcur -= A[k].w;
Pcur -= A[k].p;
}
Back(k + 1);
}
int main()
{
fin >> N >> G;
for( int i = 1; i <= N; ++i )
fin >> A[i].w >> A[i].p;
Back(1);
fout << pmax << '\n';
return 0;
}