Cod sursa(job #3326856)

Utilizator andrei_obrejaAndrei Obreja andrei_obreja Data 30 noiembrie 2025 20:56:23
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.62 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
vector<long long> dp;
struct rucsac
{
    long long p, g;
};
rucsac v[5001];
void rezolvare(long long n,long long g)
{
    int i, j;
    dp[0] = 0;
    for(i = 1; i <= n; i++)
        for(j = g; j >= v[i].g; j--)
        {
           dp[j] = max(dp[j],dp[j - v[i].g] + v[i].p);
        }
}
int main()
{

    int n,g;
    fin >> n >> g;
    dp.resize(g + 1);
    for(int i =1 ; i <= n; i++)
    {
        fin >> v[i].g >> v[i].p;
    }
    rezolvare(n, g);
    fout << dp[g] <<' ';

    return 0;
}