Pagini recente » Cod sursa (job #3292560) | Cod sursa (job #1321989) | Cod sursa (job #2467094) | Cod sursa (job #2815527) | Cod sursa (job #2689903)
#include <bits/stdc++.h>
#define ll long long
using namespace std;
int ks[2][10005];
pair<int, int> v[5005];
int n,g;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int knapsack() {
int i, j;
int index;
for(i = 1; i <= n; i++) {
for(j = 1; j <= g; j++) {
index = i%2;
if(v[i].first > j) ks[(i+1)%2][j] = ks[index][j];
else ks[(i+1)%2][j] = max(ks[index][j], ks[index][j-v[i].first] + v[i].second);
}
}
return ks[(i+1)%2][g];
}
int main(){
fin>>n>>g;
int w,p;
for(int i = 1; i <= n; i++) {
fin>>w>>p;
v[i].first = w;
v[i].second = p;
}
fout<<knapsack();
}