Cod sursa(job #2406800)
| Utilizator | Data | 16 aprilie 2019 11:04:36 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.57 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream inf("rucsac.in");
ofstream outf("rucsac.out");
int n, g;
int dyn[2][10010];
int main()
{
inf>>n>>g;
int x, y;
inf>>x>>y;
for(int i=x; i<=g; i++)
dyn[1][i]=y;
for(int i=2; i<=n; i++)
{
int w=(i&1);
inf>>x>>y;
for(int j=0; j<=g; j++)
{
if(j<x)
dyn[w][j]=dyn[w^1][j];
else
dyn[w][j]=max(y+dyn[w^1][j-x], dyn[w^1][j]);
}
}
outf<<dyn[n&1][g];
return 0;
}
