Cod sursa(job #2563007)

Utilizator TUdOr73Minciunescu Tudor TUdOr73 Data 29 februarie 2020 21:15:23
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>
#include <fstream>
using namespace std;
int profit[100],upp[100],T[100];
int main()
{   int gr[100],pr[100],maxim = 0,x;
    ifstream f("rucsac.in");
    ofstream g("rucsac.out");
    int n,G;
    f>>n>>G;
    for(int i =1;i<= n;i++)
        f>>gr[i]>>pr[i];
    T[0] = 1;
    upp[0] = 0;
    for(int i = 1;i<= n;i++){
        for(int j = G;j>= 0;j--){
            if(T[j] == 1 && j+gr[i]<=G){
                if(profit[j]+pr[i]>profit[j+gr[i]]){
                    int t = j+gr[i];
                    T[t] = 1;profit[t] = profit[j] + pr[i];
                    upp[t] = i;
                    if(profit[t] >maxim)
                    {
                        maxim = profit[t];
                         x = t;
                    }
                }
            }
        }
    }
    g << maxim;
    return 0;
}