Cod sursa(job #2854948)

Utilizator ioana.cCaprariu Ioana ioana.c Data 21 februarie 2022 21:11:19
Problema Problema rucsacului Scor 35
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <fstream>

using namespace std;

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

int N, G, p[5001], g[5001];
int dp[5001][5001];

void rucsac(){
	int i, j;
	for(int i=0; i<N; i++){
		for(int j=0; j<=G; j++)
            if (j < g[i])
                dp[i+1][j] = dp[i][j];
            else
                dp[i+1][j] = max(dp[i][j], p[i] + dp[i][j-g[i]]);
	}
}

/*void obiecte(){
	int i=N, j=G;
	while(dp[i][j] > 0){
		if (dp[i][j] == dp[i-1][j])
			i--;
		else{
			s[i-1] = 1;
			j = j-g[i-1];
			i--;
		}
	}
	fout << '\n';
	for(int i=0; i<N; i++)
        if(s[i])
            fout << i+1 << " ";
}*/

int main(){
    fin >> N >> G;
    for(int i=0; i<N; i++){
        fin >> g[i];
        fin >> p[i];
    }
    rucsac();
    fout << dp[N][G];
    //obiecte();
}