Cod sursa(job #2044614)

Utilizator BungerNadejde George Bunger Data 21 octombrie 2017 11:23:25
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("rucsac.in");
ofstream fout ("rucsac.out");
int n,g,m[3][10005],gr[10005],pr[10005], linie_actuala, linie_opusa;
void citire()
{
    fin>>n>>g;
    for(int i=1;i<=n;i++)
    fin>>gr[i]>>pr[i];
}
void rezolvare ()
{
    for(int i=1;i<=n;i++)
        for(int j=1;j<=g;j++)
        {
             linie_actuala=i%2;  linie_opusa=1-linie_actuala;
            m[linie_actuala][j]=m[linie_opusa][j];
            if(gr[i]<=j)
            {
                m[linie_actuala][j]=max(m[linie_opusa][j],m[linie_opusa][j-gr[i]]+pr[i]);
            }
        }
       /* if(n%2==0) fout<<m[0][g-1];
        else
        fout<<m[1][g-1];*/
        fout<<m[n%2][g];
}
int main()
{
    citire();
    rezolvare();
   /* for(int i=0;i<3;i++)
   { fout<<endl;
    for(int j=1;j<=g;j++)
    fout<<m[i][j]<<" ";

   }*/



    return 0;
}