Cod sursa(job #2486401)

Utilizator Moldovan_Andrei112002Moldovan Andrei Moldovan_Andrei112002 Data 2 noiembrie 2019 20:12:43
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <iostream>
#include <fstream>
#include <vector>
#define op v[j-g[i]]+val[i]
using namespace std;
ifstream fin("rucsac.in");ofstream fout("rucsac.out");
vector<int>g;
vector<int>val;
vector<int>v;
int n,gmax,i,j;

int main()
{
    fin>>n>>gmax;
    g.push_back(0);val.push_back(0);
    for(i=1;i<=n;i++)
    {
        int x,y;fin>>x>>y;
        g.push_back(x);val.push_back(y);
    }
    v.push_back(0);
    for(i=1;i<=gmax;i++)
    {
        if(g[1]<=i)
            v.push_back(val[1]);
        else
            v.push_back(0);
    }
    for(i=2;i<=n;i++)
    {
        for(j=gmax;j>=1;j--)
        {
            if(j-g[i]>=0)
            {
                if(op>v[j])
                    v[j]=op;
            }
        }
    }
    fout<<v[gmax];
    fin.close();
    fout.close();
    return 0;
}