Nu aveti permisiuni pentru a descarca fisierul grader_test1.in
Cod sursa(job #2162218)
Utilizator | Data | 12 martie 2018 09:12:02 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.91 kb |
#include <fstream>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int N,G,k,i,j,a[10005],b[10005];
struct pachet{int g,v;}p[5005];
void afis(int v[10005])
{
for(int i=1;i<=G;++i) fout<<v[i]<<' ';
fout<<'\n';
}
int main()
{
fin>>N>>G;
for(k=1;k<=N;++k) fin>>p[k].g>>p[k].v;
for(j=p[1].g;j<=G;++j) a[j]=p[1].v;
for(i=2;i<=N;++i)
{
if(i&1)
{
for(j=1;j<=G;++j)
if(j<p[i].g)a[j]=0;
else
{
a[j]=max(b[j],b[j-p[i].g]+p[i].v);
}
}
else
{
for(j=1;j<=G;++j)
if(j<p[i].g)b[j]=0;
else
{
b[j]=max(a[j],a[j-p[i].g]+p[i].v);
}
}
}
if(G&1) fout<<a[G];
else fout<<b[G];
return 0;
}