Cod sursa(job #2750338)

Utilizator cristia_razvanCristia Razvan cristia_razvan Data 10 mai 2021 21:00:05
Problema Problema rucsacului Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <bits/stdc++.h>
using namespace std;

const string filename = "rucsac";

using ll = long long;

ifstream fin(filename + ".in");
ofstream fout(filename + ".out");

const int mxn = 5000;

int n, gmx;
int dp[2][mxn];

int g[mxn], p[mxn];


int main()
{

	bool sw = true;

	fin >> n >> gmx;
	for (int i = 1; i <= n; ++i)
		fin >> g[i] >> p[i];

	for (int i = 1; i <= n; ++i, sw = !sw)
		for (int j = 1; j <= gmx; ++j)
			if (g[i] > j)
				dp[sw][j] = dp[!sw][j];
			else dp[sw][j] = max(dp[!sw][j], dp[!sw][j - g[i]] + p[i]);

	fout << dp[!sw][gmx] << '\n';

	fin.close();
	fout.close();
	return 0;
}