Cod sursa(job #1386067)

Utilizator alexmisto342Turdean Alexandru alexmisto342 Data 12 martie 2015 17:50:44
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
long long int n,k,v[10001],g,p,i,j,maxi;
vector <int> poz;
int main()
{
    fin>>n>>maxi;
    for(i=1;i<=n;i++)
    {
        fin>>g>>p;
        int m;
        m=poz.size();
        for(j=0;j<m;j++)
            if(poz[j]+g<=maxi)
            {
                if(v[poz[j]+g])
                    v[poz[j]+g]=max(v[poz[j]+g],v[poz[j]]+p);
                else
                {
                    v[poz[j]+g]=v[poz[j]]+p;
                    poz.push_back(poz[j]+g);
                }
            }
        if(v[g])
            v[g]=max(v[g],p);
        else
        {
            poz.push_back(g);
            v[g]=p;
        }
    }j=0;
    for(i=1;i<=maxi;i++)
        j=max(j,v[i]);
    fout<<j;
    return 0;
}