Mai intai trebuie sa te autentifici.
Cod sursa(job #1962283)
Utilizator | Data | 11 aprilie 2017 18:01:02 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.65 kb |
#include <bits/stdc++.h>
using namespace std;
int i, j,n, g, k, values[5002], weights[5002], keep1[10002];
int main()
{ freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
cin >> n >> g;
for(i = 0; i< n; i++)
cin >> weights[i] >> values[i];
int sol = 0;
for(i = 0; i< n; i++)
for(j = g - weights[i]; j >= 0; j-- )
if( keep1[j + weights[i]] < keep1[j] + values[i] )
{
keep1[j+weights[i]] = keep1[j] + values[i];
if( keep1[j+weights[i]] > sol)
sol = keep1[j+weights[i]];
}
cout << sol;
return 0;
}