Cod sursa(job #2331709)

Utilizator mateiuMateiu Ioan mateiu Data 29 ianuarie 2019 20:23:51
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.15 kb
#include <fstream>
#include <vector>
#include <queue>
#include <algorithm>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
struct el{
    int gr,cst;
};
el v[5002];
/*int v[100002],alege[10002],n,m,sume[10002];
void scm(int s)
{
    for(int i=1;i<=n;i++)
    {
        if(sume[v[i]]==0)
        {
            sume[v[i]]=1;
            alege[v[i]]=i;
        }
            for(int j=1;j<=s;j++)
            {
                if(sume[j]==1&&alege[j]!=i&&sume[j+v[i]]==0)
                {
                    sume[j+v[i]]=1;
                    alege[j+v[i]]=i;
                }
            }

    }
}
void afisare(int i)
{
    if(i!=0)
    {
        afisare(i-v[alege[i]]);
        g<<v[alege[i]]<<" ";
    }
}*/
int sol[10002];
int main()
{
    int n,gmax,i,j;
    f>>n>>gmax;
    for(i=1;i<=n;i++)
    {
        f>>v[i].gr>>v[i].cst;
    }
    for(i=1;i<=n;i++)
    {
        for(j=gmax;j>=v[i].gr;j--)
        {
            if(sol[j]<sol[j-v[i].gr]+v[i].cst)
            {
                sol[j]=sol[j-v[i].gr]+v[i].cst;
            }
        }
    }
    g<<sol[gmax];
    return 0;
}