Cod sursa(job #1731688)

Utilizator codebreaker24Tivadar Ionut codebreaker24 Data 19 iulie 2016 15:59:47
Problema Problema rucsacului Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <iostream>
#include <fstream>
using namespace std;

const int NMAX = 5000;
const int CMAX = 10000;
int costmaxim;
int n;
int sol;

int P[NMAX],C[NMAX];

int S[CMAX];





int main()
{

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


    fin >> n >> costmaxim;
    for(int i=1; i<=n; i++)
    {
        fin >> C[i] >> P[i];

    }

    S[0]  = 0;
    sol = 0;
    for(int i=1 ;i<=n; i++)
        for(int j=costmaxim - C[i]; j>=0; --j)
        {

          if(S[j + C[i]]<  S[j] + P[i])
          {
              S[j +C[i]]= S[j] + P[i];
          }

          if(S[j + C[i]] > sol)
          {

              sol = S[j + C[i]];
          }

        }



    fout << sol;

    fin.close();
    fout.close();



    return 0;
}