Mai intai trebuie sa te autentifici.
Cod sursa(job #2322786)
| Utilizator | Data | 18 ianuarie 2019 12:32:50 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.68 kb |
#include <fstream>
#include <vector>
#include <iostream>
using namespace std;
int d[2][10001];
int main()
{
ifstream fin("rucsac.in");
int n, g;
fin >> n >> g;
vector<pair<int,int> > obiecte;
for(int i=0;i<n;i++){
int x,y;
fin>>x>>y;
obiecte.push_back(make_pair(x,y));
}
int l=0;
for(int i=1; i<=n; ++i, l=1-l)
for(int cw=0; cw<=g; ++cw)
{
d[1-l][cw] = d[l][cw];
if(obiecte[i-1].first <= cw)
d[1-l][cw] = max(d[1-l][cw], d[l][cw - obiecte[i-1].first] + obiecte[i-1].second);
}
ofstream fout("rucsac.out");
fout << d[l][g];
return 0;
}
