Cod sursa(job #864439)

Utilizator nosurrender99Bura Bogdan nosurrender99 Data 24 ianuarie 2013 22:56:00
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>
#include <memory.h>
#include <vector>
using namespace std;

fstream f("rucsac.in", ios::in), f2("rucsac.out", ios::out);


int main()
{
    int n,g,a,b;
    long long inf=100000000;
    vector < long long> v;
    f>>n>>g;
    v.resize(g+1,inf);
    v[0]=0;
    for(;n;--n)
    {
        f>>a>>b;
        for(int i=g-a;i>=0;--i)
        {
            if (v[i]!=inf)
            {
                if (v[i+a]==inf)
                    v[i+a]=v[i]+b;
                else
                    v[i+a]=max(v[i+a],v[i]+b);
            }
        }
    }
    int maxi=0;
    for(int i=g;i;--i)
        if (v[i]>maxi)
            maxi=v[i];
    f2<<maxi;

    return 0;
}