Cod sursa(job #1936633)

Utilizator CammieCamelia Lazar Cammie Data 23 martie 2017 11:31:43
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.99 kb
#include <fstream>
#include <stdio.h>

#define MAXN 5012
#define MAXG 10012

FILE *fin, *fout;

using namespace std;

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

int n, g;
int castig[MAXG];
int p[MAXN], gr[MAXN];

inline void Read()
{
   // fin >> n >> g;

    fscanf(fin, "%d %d", &n, &g);

    for (int i = 1; i <= n; i++)
    {
       // fin >> gr[i] >> p[i];
       fscanf(fin, "%d %d", &gr[i], &p[i]);
    }
}

inline void Solve()
{
    for (int i = 1; i <= n; i++)
    {
        for (int j = g; j >= 1; j--)
        {
            if (j - gr[i] >= 0)
            {
                castig[j] = max(castig[j - gr[i]] + p[i], castig[j]);
            }
        }
    }

    //fout << castig[n][g];
    fprintf(fout, "%d", castig[g]);
}

int main ()
{
    fin = fopen("rucsac.in", "r");
    fout = fopen("rucsac.out", "w");

    Read();
    Solve();

   // fin.close(); fout.close(); return 0;
   fclose(fin); fclose(fout); return 0;
}