Cod sursa(job #2689894)

Utilizator CozehNita Horia Teodor Cozeh Data 22 decembrie 2020 16:04:40
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.56 kb
#include <fstream>
#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++) {
		cin>>w>>p;
		v[i].first = w;
	   	v[i].second = p;
	}
	fout<<knapsack();
}