Cod sursa(job #2348576)

Utilizator Senth30Denis-Florin Cringanu Senth30 Data 19 februarie 2019 20:22:50
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <bits/stdc++.h>

using namespace std;

const int NMAX = 5004;
const int GMAX = 10004;

int W[NMAX], P[NMAX];
int Optim[GMAX];
int N, G;

int read(){
    scanf("%d %d", &N, &G);
    for(int i = 1; i <= N; i++)
        scanf("%d %d", &W[i], &P[i]);
}

int afisare(){
    for(int i=1; i<12; i++){
        printf("%d ", Optim[i]);
    }
    printf("\n");
}

int main(){

    freopen("rucsac.in", "r", stdin);
    freopen("rucsac.out", "w", stdout);

    read();

    Optim[0] = 0;
    int sol = 0;

    for(int i = 1; i <= N; ++i){
		for(int j = G - W[i]; j >= 0; --j){
			if(Optim[j+W[i]] < Optim[j] + P[i]){
				Optim[j+W[i]] = Optim[j] + P[i];
				if( Optim[j+W[i]] > sol)
					sol = Optim[j+W[i]];
			}
		}
    }
    printf("%d", sol);
    return 0;
}