Cod sursa(job #1182430)

Utilizator RobyyyRobert Teodorovici Robyyy Data 6 mai 2014 13:25:31
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <iostream>
#include <fstream>

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

int pret[10000],vol[10000],a[10000][10000],G,n,m;

int maxim(int x, int y)
{
    if(x>=y)
    return x;
    else return y;
}


int main()
{
    int i,j,k;
    fin>>n>>G;
    for(i=1;i<=n;i++)
    fin>>vol[i]>>pret[i];

    for(i=1;i<=n;i++)
    {for(j=1;j<vol[i];j++)
    a[i][j]=a[i-1][j];

    for(k=j;k<=G;k++)
    {
        /*if(pret[i] + a[i-1][k-vol[i]] ==maxim(a[i-1][k] , pret[i] + a[i-1][k-vol[i]]) && vol[i]<=k-vol[i-1] )
           a[i][k]=pret[i] + a[i-1][k-vol[i]];
           else a[i][k]=a[i-1][k];*/
           a[i][k]=maxim(a[i-1][k] , pret[i] + a[i-1][k-vol[i]]);

    }
    }

   /* for(i=1;i<=n;i++)
    {for(j=1;j<=G;j++)
    fout<<a[i][j]<<" ";
    fout<<endl;
    }*/
    fout<<a[n][G];

    return 0;
}