Cod sursa(job #2468015)

Utilizator valeriucaraselCarasel Valeriu valeriucarasel Data 5 octombrie 2019 11:41:52
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    ifstream in("rucsac.in");
    ofstream out("rucsac.out");
    int n,g;
    in>>n>>g;
    int w[n+5],p[n+5];
    for (int i=0;i<n;i++)
    {
        in>>w[i]>>p[i];
    }
    int profit[g+5];
    profit[0]=0;
    for (int j=1;j<=g;j++)
    {
        profit[j]=-1;
    }
    for (int i=0;i<n;i++)
    {
        for (int j=g-w[i];j>=0;j--)
        {
            if (profit[j]!=-1)
            {
                if (p[i]+profit[j]>profit[j+w[i]])
                {
                    profit[j+w[i]]=p[i]+profit[j];
                }
            }
        }
    }
    int maxim=0;
    for (int j=0;j<=g;j++)
    {
        if (maxim<profit[j]) maxim=profit[j];
    }
    out<<maxim;
    in.close();
    out.close();
    return 0;
}