Cod sursa(job #2838240)

Utilizator d_rawGroza Mihai-Octavian d_raw Data 23 ianuarie 2022 11:49:24
Problema Problema rucsacului Scor 65
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.52 kb
#include <bits/stdc++.h>
using namespace std;

#define N 10005
#define M 5005

int dp[2][M];

int main()
{
	ifstream fin("rucsac.in");
	ofstream fout("rucsac.out");
	int n, G, j;
	pair <int, int> v[N];
	fin >> n >> G;
	for(int i = 1; i <= n; i++)
		fin >> v[i].first >> v[i].second;
	for(int i = 1; i <= n; i++)
		for(j = 0; j <= G; j++){
			if(j < v[i].first)
			dp[i % 2][j] = dp[(i - 1) % 2][j];
			else dp[i % 2][j] = max(dp[(i - 1) % 2][j], dp[(i - 1) % 2][j - v[i].first] + v[i].second);
	}
	fout << dp[n % 2][G];
	return  0;
}