Mai intai trebuie sa te autentifici.
Cod sursa(job #2854614)
Utilizator | Data | 21 februarie 2022 15:33:12 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 1.57 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int main()
{
int nrObiecte, capacitateRucsac;
f>>nrObiecte>>capacitateRucsac;
int pret[nrObiecte+1], greutate[nrObiecte+1];
for(int i=1;i<=nrObiecte;i++){
f>> greutate[i]>>pret[i];
}
int capacitati[capacitateRucsac+1];
for(int weight = 0; weight <= capacitateRucsac; weight++)
capacitati[weight] = 0;
for(int obiect = 1;obiect <= nrObiecte; obiect ++)
for(int weight = capacitateRucsac; weight>=0; weight --)
if(greutate[obiect] <= weight)
capacitati[weight] = max(capacitati[weight - greutate[obiect]] + pret[obiect],capacitati[weight]);
g<<capacitati[capacitateRucsac];
/*
int capacitati[nrObiecte+1][capacitateRucsac+1];
for(int obiect = 0; obiect <= nrObiecte; obiect++ )
capacitati[obiect][0] = 0;
for(int weight = 0; weight <= capacitateRucsac; weight++)
capacitati[0][weight] = 0;
for(int obiect = 1; obiect <= nrObiecte; obiect++ )
for(int weight = 0; weight <= capacitateRucsac; weight++)
if(greutate[obiect] <= weight)
capacitati[obiect][weight] = max(capacitati[obiect-1][weight],
capacitati[obiect-1][weight - greutate[obiect]] + pret[obiect]);
else
capacitati[obiect][weight] = capacitati[obiect-1][weight];
g<<capacitati[nrObiecte][capacitateRucsac];
*/
return 0;
}