Pagini recente » Cod sursa (job #1133360) | Cod sursa (job #1870076) | Cod sursa (job #1853742) | Istoria paginii runda/simulareoni11-12-round2/clasament | Cod sursa (job #2854397)
#include <iostream>
#include <fstream>>
#include <vector>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int main()
{
int nrObiecte, capacitateRucsac;
fin >> nrObiecte >> capacitateRucsac;
vector <int> greutateObiect(nrObiecte + 1), valoareObiect(nrObiecte + 1);
for(int i = 1; i <= nrObiecte; i ++)
fin >> greutateObiect[i] >> valoareObiect[i];
vector <vector<int> > proces (nrObiecte + 1, vector<int>(capacitateRucsac + 1));
for(int obiect = 1; obiect <= nrObiecte; obiect ++) {
for(int capacitate = 1; capacitate <= capacitateRucsac; capacitate ++) {
proces[obiect][capacitate] = proces[obiect - 1][capacitate];
if(capacitate >= greutateObiect[obiect])
proces[obiect][capacitate] = max(proces[obiect - 1][capacitate], proces[obiect - 1][capacitate - greutateObiect[obiect]] + valoareObiect[obiect]);
}
}
fout << proces[nrObiecte][capacitateRucsac];
return 0;
}