Cod sursa(job #3355285)

Utilizator diana.andDiana Andrei diana.and Data 22 mai 2026 13:06:13
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.56 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

ifstream fin("rucsac.in");
ofstream fout("rucsac.out");

int main() {
	int n, g;
	fin>>n>>g;
	vector<int> w(n+1), p(n+1);
	for(int i=1;i<=n;i++) {
		int a,b;
		fin>>a>>b;
		w[i] = a;
		p[i] = b;
	}
	vector<vector<int>> dp(2, vector<int>(g+1,0));
	for(int i=1;i<=n;i++) {
		for(int cap=0; cap<=g; cap++) {
			dp[i%2][cap] = dp[abs(i%2-1)][cap];

			if(cap - w[i%2] >= 0) {
				dp[i%2][cap] = max(dp[i%2][cap], dp[abs(i%2-1)][cap-w[i]] + p[i]);
			}
		}
	}
	fout<<dp[n%2][g]<<endl;
	return 0;
}