Cod sursa(job #3290309)

Utilizator mateilazarescumateilazarescu mateilazarescu Data 30 martie 2025 10:12:32
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.95 kb
#include<fstream>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int tablou[10005][2];
int n, G, i, p, g, j;
int main() {

    fin>>n>>G;
    for (i = 1; i <= n; i++) {
        fin>>g>>p;
        for (j = 1; j <= G; j++) {
            if (g == j)
                tablou[j][1] = max(p, tablou[j][0]);
            if (g < j) {
                if (tablou[j-g][0] != 0)
                    tablou[j][1] = max(tablou[j-g][0] + p, tablou[j][0]);
                else
                    tablou[j][1] = tablou[j][0];
            }
            if (g > j)
                tablou[j][1] = tablou[j][0];
        }
        for (j = 1; j <= G; j++) {
            tablou[j][0] = tablou[j][1];
            //fout<<tablou[j][0]<<" ";
            tablou[j][1] = 0;
        }
        //fout<<endl;
    }
    int maxi = 0;
    for (i = 1; i <= G; i++) {
        maxi = max(maxi, tablou[i][0]);
    }
    fout<<maxi;
return 0;
}