Cod sursa(job #3181126)

Utilizator maiaauUngureanu Maia maiaau Data 6 decembrie 2023 15:21:36
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <bits/stdc++.h>
using namespace std;
using pii = pair<int,int>;
#define w first
#define p second
#define pb push_back

ifstream f("rucsac.in");
ofstream g("rucsac.out");

const int N = 5003;
const int W = 10003;

int n, mxw, dp[2][W];
pii v[N];

void read(), rucsac();

int main()
{
	read();
	rucsac();

	return 0;
}

void read(){
	f >> n >> mxw;
	for (int i = 1; i <= n; i++)
		f >> v[i].w >> v[i].p;
}
void rucsac(){
	int k = 0;
	for (int i = 1; i <= n; i++, k ^= 1)	
		for (int w = 0; w <= mxw; w++){
			dp[k][w] = dp[!k][w];
			if (v[i].w <= w)
				dp[k][w] = max(dp[k][w], dp[!k][w-v[i].w]+v[i].p);
		}
	g << dp[!k][mxw];
}