Pagini recente » Cod sursa (job #1226749) | Cod sursa (job #774189) | Cod sursa (job #1006386) | Cod sursa (job #2050190) | Cod sursa (job #1880555)
#include<bits/stdc++.h>
using namespace std;
FILE *in = fopen("rucsac.in", "r");
FILE *out = fopen("rucsac.out", "w");
const int nmax = 5005;
int n, g;
int rez[nmax][nmax*2];
int wi[nmax], pi[nmax];
inline void read()
{
fscanf(in, "%d%d", &n, &g);
for(int i = 1; i <= n; i++)
{
int x, y;
fscanf(in, "%d%d", &x, &y);
wi[i] = x; pi[i] = y;
}
}
inline void dinamica()
{
for(int i = 1; i <= n; i++){
for(int j = 1; j <= g; j++){
if( wi[i] > j )
rez[i][j] = rez[i-1][j];
else
rez[i][j] = max(rez[i-1][j-wi[i]] + pi[i], rez[i-1][j]);
}
}
}
inline void print()
{
fprintf(out, "%d", rez[n][g]);
}
int main()
{
read();
dinamica();
print();
return 0;
}