Cod sursa(job #1007306)

Utilizator RamaStanciu Mara Rama Data 8 octombrie 2013 18:36:24
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<fstream>
#include<iostream>
#include<stdio.h>
#include<vector>
#define MN 5001
#define MG 10001

using namespace std;

int wg[MN],pr[MN],A[MG],n,maxW,comb=0;

int solve()
{
   for(int i=1;i<=n;i++)
        for(int j=maxW-wg[i];j>=0;j--)
            {
                if(A[j+wg[i]]<A[j]+pr[i])
                    {
                        A[j+wg[i]]=A[j]+pr[i];
                        if(A[j+wg[i]]>comb) comb=A[j+wg[i]];
                    }
            }
    return comb;
}
int main()
{

    ifstream fin("rucsac.in");
    ofstream fout("rucsac.out");

    fin>>n>>maxW;

    for (int i=1;i<=n;i++)
        fin>>wg[i]>>pr[i];

    A[0] = 0;

    fout<<solve();
    return 0;
}