Cod sursa(job #1097229)

Utilizator DiaconuDanDiaconu Dan DiaconuDan Data 3 februarie 2014 11:11:55
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include<fstream> ;

using namespace std;

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

int sol[100008],w[5008],p[5008];
int n , g, i, j, k, maxim ;

void citire();
void pd();
void afisare();

int main()
{
    citire();
    pd();
    afisare();
    return 0;
}


void citire()
{
        fin >> n >> g ;
        for(j=1;j<=g;j++) sol[j]=-1;
        for(i=1;i<=n;i++) fin >> w[i] >> p[i];

}

void pd()
{
     sol[0]=0;
     for(i=1;i<=n;i++)
            for(j=g-w[i];j>=0;j--)
                if(sol[j]!=-1)
                   if(sol[j]+p[i]>sol[j+w[i]])
                        sol[j+w[i]]=sol[j]+p[i];
    for(i = 2; i <= g ; i++ )
        if ( sol[i] > maxim ) maxim = sol[i];
}

void afisare()
{
     fout << maxim << '\n' ;
}