Cod sursa(job #1588170)

Utilizator feli2felicia iuga feli2 Data 2 februarie 2016 20:58:23
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <fstream>

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

int n, g, w, p, v[2][10003], i, j, mx;

int main()
{
    fin>>n>>g;
    for(i=1;i<=n;i++)
    {
        fin>>w>>p;
        for(j=1;j<=g;j++)
        {
            if(v[(i+1)%2][j])
            {
                if(v[i%2][j]<v[(i+1)%2][j])
                    v[i%2][j]=v[(i+1)%2][j];
                if(j+w<=g&&v[(i+1)%2][j]+p>v[i%2][j+w])
                {
                    v[i%2][j+w]=v[(i+1)%2][j]+p;
                }
            }
        }
        if(w<=g&&v[i%2][w]<p)
        {
            v[i%2][w]=p;
        }
    }
    mx=0;
    for(i=1;i<=g;i++)
        if(v[n%2][i]>mx)
            mx=v[n%2][i];
    fout<<mx;
    return 0;
}