Cod sursa(job #2486453)

Utilizator C3YOTodoran Diana Andreea C3YO Data 2 noiembrie 2019 21:46:55
Problema Problema rucsacului Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.1 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("rucsac.in");
ofstream fout ("rucsac.out");
int n, gr[1010], co[1010], gmax, x[1010], y[1010];

int main()
{
    int i, j=0;
    fin>>n>>gmax;
    for(i=1; i<=n; i++)
        fin>>gr[i]>>co[i];
    for(j=1; j<=n; j++)
    {
       for(i=1; i<=gmax; i++)
        {
            if(i-gr[j]>=0)
            {
                if(j%2==1)
                {
                    if(y[i-gr[j]]+co[j]>y[i])
                        x[i]=y[i-gr[j]]+co[j];
                    else
                        x[i]=y[i];
                }
                else
                {
                    if(x[i-gr[j]]+co[j]>x[i])
                        y[i]=x[i-gr[j]]+co[j];
                    else
                        y[i]=x[i];
                }

            }
            else
                if(j%2==1)
                    x[i]=y[i];
                else
                    y[i]=x[i];
        }
    }

    if(n%2==1) fout<<x[gmax];
    else fout<<y[gmax];

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