Cod sursa(job #1039525)

Utilizator juniorOvidiu Rosca junior Data 23 noiembrie 2013 11:11:59
Problema Problema rucsacului Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <fstream>
#include <iostream>
#include <iomanip>
 
using namespace std;
 
struct obiect {
    int g, p;
};
 
obiect a[5001];
int n, G, l, g, p, c, pn, mp[1500][1500];
ifstream fi ("rucsac.in");
ofstream fo ("rucsac.out");
 
int main() {
    fi >> n >> G;
    for (l = 1; l <= n; l++)
        fi >> a[l].g >> a[l].p;
    for (l = 1; l <= n; l++) {
    for (c = 1; c <= G; c++) {
      if (a[l].g <= c) { // Obiectul curent incape in rucsac?
        pn = a[l].p+mp[l-1][c-a[l].g];
        if (pn > mp[l-1][c])
          mp[l][c] = pn;
        else
          mp[l][c] = mp[l-1][c];
      }
      else
        mp[l][c] = mp[l-1][c];
      //cout << setw(4) << mp[l][c];
    }
    //cout << endl;
    }
    fo << mp[n][G];
    return 0;
}