Pagini recente » Cod sursa (job #767348) | Cod sursa (job #1034942) | Cod sursa (job #1858731) | Cod sursa (job #1822456) | Cod sursa (job #2689895)
#include <bits/stdc++.h>
#define ll long long
using namespace std;
int ks[5005][10005];
pair<int, int> v[5005];
int n,g;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int knapsack() {
int i, j;
for(i = 1; i <= n; i++) {
for(j = 1; j <= g; j++) {
if(v[i].first > j) ks[i][j] = ks[i-1][j];
else ks[i][j] = max(ks[i-1][j], ks[i-1][j-v[i].first] + v[i].second);
}
}
return ks[n][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();
}