Pagini recente » Cod sursa (job #921849) | Cod sursa (job #1668112) | Cod sursa (job #1303375) | Cod sursa (job #2382800) | Cod sursa (job #2482787)
#include <fstream>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int v1[10005],v2[10005],gmax,n,gr[10005],pr[10005];
int main()
{
int i,g;
fin>>n>>gmax;
for(i=1; i<=n; i++)
fin>>gr[i]>>pr[i];
for(i=1; i<=n; i++)
{
if(i%2==1)
{
for(g=1; g<=gmax; g++)
{
if(g>=gr[i])
{
if(v2[g-gr[i]]+pr[i]>v2[g])
v1[g]=v2[g-gr[i]]+pr[i];
else
v1[g]=v2[g];
}
else v1[g]=v2[g];
}
}
else
{
for(g=1; g<=gmax; g++)
{
if(g>=gr[i])
{
if(v1[g-gr[i]]+pr[i]>v1[g])
v2[g]=v1[g-gr[i]]+pr[i];
else
v2[g]=v1[g];
}
else v2[g]=v1[g];
}
}
}
if(n%2==0) fout<<v2[gmax];
else fout<<v1[gmax];
fin.close();
fout.close();
return 0;
}