Cod sursa(job #2659287)

Utilizator martinmiere133Cranga Antonio martinmiere133 Data 16 octombrie 2020 14:06:19
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#include <set>
#include <algorithm>
#include <list>
#include <map>
#include <math.h>
#define NMAX 100001
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int greutate[5001];
int profit[5001];
int optim[10001];
int main() {
    
    int n;
    f>>n;
    int G_Max;
    f>>G_Max
    for(int i=1;i<=n;i++)
    {
        f>>greutate[i]>>profit[i];
    }
    optim[0] =0 ;
    int sol =0 ;
    for(int i=1;i<=n;i++)
    {
        for(int j=G_Max - greutate[i] ; j>=0 ;j--)
        {
            if(optim[j+greutate[i]] < optim[j] + profit[i])
            {
                optim[j+greutate[i]] = optim[j] + profit[i];
                if(optim[j+greutate[i]] > sol)sol= optim[j+greutate[i]];
            }
        }
        
    }
    g<<sol;
    return 0;
}