Pagini recente » Cod sursa (job #2999259) | Cod sursa (job #973) | Cod sursa (job #2972140) | Cod sursa (job #2156738) | Cod sursa (job #2537090)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
const int CMAX = 10015;
int mat[2][CMAX] , gm , pm , ob;
struct ex{
int G , P;
}v[CMAX];
int main()
{
int l , i;
fin >> ob >> gm;
for(int i=1;i<=ob;i++)
{
fin >> v[i].G >> v[i].P;
}
for(i=1,l=0;i<=ob;i++,l=1-l)
{
for(int j=1;j<=gm;j++)
{
if(v[i].G>j) mat[l][j] = mat[1-l][j];
else mat[l][j] = max(mat[1-l][j] , mat[1-l][j-v[i].G] + v[i].P);
}
}
/*
for(int i=1;i<=ob;i++)
{
cout << i << " | ";
for(int j=1;j<=gm;j++)
{
cout << mat[i][j] << " ";
}
cout << '\n';
}
*/
fout << mat[1-l][gm];
return 0;
}
//hack , daca mergi cu indici negativi nu depasesti memoria :0