Pagini recente » Cod sursa (job #827755) | Cod sursa (job #107619) | Cod sursa (job #1512437) | Cod sursa (job #599995) | Cod sursa (job #2482761)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("rucsac.in");
ofstream fout ("rucsac.out");
int nrr,gmax,v1[10010],v2[10010],v,gr;
void afisare()
{
for(int i=1;i<=gmax;i++)
fout<<v1[i]<<" ";
fout<<endl;
for(int i=1;i<=gmax;i++)
fout<<v2[i]<<" ";
fout<<endl;
fout<<endl;
}
int main()
{
fin>>nrr>>gmax;
for(int i=1;i<=nrr;i++)
{
fin>>gr>>v;
if(i%2==1) ///v1 se construieste
{
for(int j=1;j<=gmax;j++)
{
if(j-gr>=0)
v1[j]=max(v2[j],v2[j-gr]+v);
else
v1[j]=v2[j];
}
}
else ///v2 se construieste
{
for(int j=1;j<=gmax;j++)
{
if(j-gr>=0)
v2[j]=max(v1[j],v1[j-gr]+v);
else
v2[j]=v1[j];
}
}
}
fout<<max(v1[gmax],v2[gmax]);
return 0;
}