Pagini recente » Cod sursa (job #711996) | Cod sursa (job #144796) | Cod sursa (job #3202675) | Cod sursa (job #82306) | Cod sursa (job #1613448)
#include <fstream>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int n, g, rez;
struct {
short gr, prof;
} ob[5001];
struct {
int viz;
int loc;
} rucsac[10001];
int main()
{
fin>>n>>g;
for(int i=1;i<=n;i++)
fin>>ob[i].gr>>ob[i].prof;
for(int i=1;i<=g;i++)
rucsac[i].loc=-1;
for(int k=1;k<=n;k++)
{
for(int i=0; i+ob[k].gr<=g ;i++)
if(rucsac[i].loc!=-1 and rucsac[i].viz!=k)
if(rucsac[i].loc+ob[k].prof>rucsac[i+ob[k].gr].loc)
{
rucsac[i+ob[k].gr].loc=rucsac[i].loc+ob[k].prof;
rucsac[i+ob[k].gr].viz=k;
}
}
for(int i=1;i<=g;i++)
if(rucsac[i].loc>rez)
rez=rucsac[i].loc;
fout<<rez;
return 0;
}