Pagini recente » Cod sursa (job #2001583) | Cod sursa (job #2035269) | Cod sursa (job #2883151) | Cod sursa (job #720946) | Cod sursa (job #1575431)
#include <iostream>
#include <fstream>
using namespace std;
int mat[10000];
int obj[5000][2];
int main()
{
ifstream i("rucsac.in");
ofstream o("rucsac.out");
int x, y;
i >> x >> y;
int max = 0;
int m = 0;
mat[0] = 1;
for(int a = 0; a < x; a++)
{
i >> obj[a][0] >> obj[a][1];
}
for(int a = 0; a < x; a++)
{
for(int b = max; b >= 0; b--)
{
if(mat[b])
{
mat[b + obj[a][0]] = mat[b] + obj[a][1];
if(b + obj[a][0] > max)
{
max = b + obj[a][0];
}
if(mat[b] + obj[a][1] > m)
{
if(b + obj[a][0] <= y)
{
m = mat[b] + obj[a][1];
}
}
}
}
}
o << m - 1;
return 0;
}