Pagini recente » Cod sursa (job #3174803) | Cod sursa (job #992153) | Cod sursa (job #1259607) | Cod sursa (job #2548197) | Cod sursa (job #2373990)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("rucsac.in");
ofstream fout ("rucsac.out");
const short Gmax = 1e4 + 5;
int L1[Gmax], L2[Gmax], n, g[Gmax / 2], G, p[Gmax / 2];
int main()
{
fin >> n >> G;
for(int i = 1 ; i <= n ; i++)
fin >> g[i] >> p[i];
L1[g[1]] = p[1];
for(int i = 2 ; i <= n ; i++)
{
for(int j = 1 ; j <= G ; j++)
{
L2[j] = L1[j];
if(j >= g[i])
L2[j] = max(L2[j], L1[j - g[i]] + p[i]);
}
for(int j = 1 ; j <= G ; j++)
L1[j] = L2[j];
}
int ans = 0;
for(int i = 0 ; i <= G ; i++)
ans = max(ans , L1[i]);
fout << ans << "\n";
fin.close();
fout.close();
}