Pagini recente » Cod sursa (job #761022) | Cod sursa (job #506186) | Cod sursa (job #3177873) | Cod sursa (job #1495734) | Cod sursa (job #2868010)
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int n, suly;
f >> n >> suly;
int elottem[suly];
fill_n(elottem, suly, 0);
int megoldas[suly];
fill_n(megoldas, suly, 0);
int sulya, ara;
for (int i = 0; i < n; i++)
{
f >> sulya >> ara;
sulya--;
if(sulya + 1 <= suly && ara > megoldas[sulya])
{
megoldas[sulya] = ara;
}
for (int j = 0; j < suly; j++)
{
if (elottem[j] == 0)
{
continue;
}
if (sulya + 1 + j < suly && ara + elottem[j] > megoldas[j + sulya + 1])
{
megoldas[j + sulya + 1] = elottem[j] + ara;
}
}
copy(megoldas, megoldas + suly, elottem);
}
ara = 0;
for (int i = 0; i < suly; i++)
{
if (ara < megoldas[i])
{
ara = megoldas[i];
}
}
g << ara;
return 0;
}