Cod sursa(job #1707899)

Utilizator kasperDorin Puscasu kasper Data 26 mai 2016 08:24:43
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <bits/stdc++.h>
#define in "rucsac.in"
#define out "rucasca.out"

using namespace std;

ifstream fin(in);
ofstream fout(out);
    
int N, G, Pm;
bool u;
int A[5100], P[5100];
int h[2][11000];
  
void citire()
{
	fin >> N >> G;
    for(int i = 1; i <= N; i++)
        fin >> A[i] >> P[i];	
}  
  
int main()
{   
    
    citire();    
    for(int i = 1; i <= N; ++i)
	{
        for(int x = 0; x <= G; x++)
        {
          h[u][x] = h[!u][x];
        	if(A[i] <= x)
          		h[u][x] = max(h[u][x], h[!u][x - A[i]] + P[i]);            
        }
        	u = !u;
    }  		u = !u;
    Pm = h[u][G];
    fout << Pm;
    
    return 0;
}