Cod sursa(job #2689903)

Utilizator CozehNita Horia Teodor Cozeh Data 22 decembrie 2020 16:22:28
Problema Problema rucsacului Scor 55
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.62 kb
#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();
}