Cod sursa(job #3244270)

Utilizator RosheRadutu Robert Roshe Data 24 septembrie 2024 13:31:33
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.61 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <math.h>

using namespace std;
const int MAXINT = 2e9+20;

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

int Cost[5001], Greutate[5001];
int dp[2][10001];

int main(){
  int N, G;
  in >> N >> G;
  for(int i = 1; i<=N; i++){
    in >> Greutate[i] >> Cost[i];
  }
  for(int i = 1; i<=N; i++){
    for(int wg = 0; wg<=G; wg++){
      dp[1][wg] = dp[0][wg];
      if(Greutate[i] <= wg)
        dp[1][wg] = max(dp[0][wg], dp[0][wg-Greutate[i]] + Cost[i]);
    }
    for(int wg = 0; wg<=G; wg++)
      dp[0][wg] = dp[1][wg];
  }
  out  << dp[1][G];
}