Pagini recente » Cod sursa (job #1493367) | Cod sursa (job #3259372) | Cod sursa (job #2500675) | Cod sursa (job #1408868) | Cod sursa (job #1698280)
#include <fstream>
#include <iostream>
#include <algorithm>
std::ifstream f("rucsac.in");
std::ofstream g("rucsac.out");
int * a = new int[10001];
int * b = new int[10001];
int cost[5001];
int benefit[5001];
int N,G;
void read(){
f >> N >> G;
for(int i = 1; i <= N ;++i){
f >> cost[i] >> benefit[i];
}
}
void calculate(){
for(int k = 1 ; k <= N ; ++k){
for(int w = 1 ; w <= G ; ++w){
if(cost[k] > w){
b[w] = a[w];
}else{
b[w] = std::max(a[w],a[w - cost[k]] + benefit[k]);
}
}
int * tmp = a;
a = b ;
b = tmp;
}
}
int main(){
read();
calculate();
g<< a[G];
f.close();
g.close();
return 0;
}