Cod sursa(job #1814799)
Utilizator | Data | 24 noiembrie 2016 16:11:22 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.51 kb |
#include<fstream> //100p infoarena cu doi vectori
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int n,gv,i,j,gr,c,a,b;
int best[3][10010];
int main()
{
f>>n>>gv;
a=1;b=2;
for(i=1;i<=n;i++)
{
f>>gr>>c;
for(j=1;j<=gv;j++)
{
if(gr<=j) best[b][j]=max(best[a][j],best[a][j-gr]+c);
else best[b][j]=best[a][j];
}
swap(a,b);
}
g<<best[a][gv]<<'\n';
f.close();g.close();
return 0;
}