Cod sursa(job #887574)

Utilizator mihai27Mihai Popescu mihai27 Data 23 februarie 2013 21:26:38
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include<fstream>
#include<vector>
#include<algorithm>

using namespace std;
ifstream in("rucsac.in");
ofstream out("rucsac.out");

int n,G,i,j,sol;
vector<int> L1(11),L2(11);
vector<pair<int,int> > a(10005);

int main()
{
    in>>n>>G;
    for (i=1;i<=n;i++)
        in>>a[i].first>>a[i].second;;

    L1[a[1].first]=a[1].second;

    for (i=2;i<=n;i++)
    {
        for (j=1;j<=G;j++)
        {
            L2[j]=L1[j];
            if (j-a[i].first>0) L2[j]=max(L2[j],L1[j-a[i].first]+a[i].second);
        }
        L1=L2;
    }
    for (i=1;i<=G;i++) sol=max(sol,L1[i]);
        out<<sol;
}