Cod sursa(job #2835211)

Utilizator ViAlexVisan Alexandru ViAlex Data 18 ianuarie 2022 11:40:29
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.52 kb
#include<iostream>
#include<fstream>
using namespace std;

const int MAX_N=5100;
const int MAX_G=10100;

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

int n,g,v[MAX_N],w[MAX_N],dp[2][MAX_G];

void read(){
	in>>n>>g;
	for(int i=1;i<=n;i++){
		in>>w[i]>>v[i];
	}
}

void solve(){
	for(int i=1;i<=n;i++){
		for(int s=0;s<=g;s++){
			dp[i%2][s]=max(dp[i%2][s],dp[(i-1)%2][s]);
			if(w[i]<=s){
				dp[i%2][s]=max(dp[i%2][s],v[i]+dp[(i-1)%2][s-w[i]]);
			}
		}
	}

	out<<dp[n%2][g];
}

int main(){
	read();
	solve();

	return 0;
}