Cod sursa(job #2771843)

Utilizator answarIonascu Andrei answar Data 29 august 2021 15:25:04
Problema Problema rucsacului Scor 55
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>
using namespace std;
int f[10010];
int v[10010];
int p[10010];
int n,i,j,g,sol;
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
int main () {
cin>>n>>g;
f[0]=1;
    for (i=1;i<=n;i++) {
        cin>>v[i]>>p[i];
    }
    for (i=1;i<=n;i++) {
        for (j=g;j>=0;j--) {
            if (f[j]!=0) {
                if (j+v[i]<=g&&f[j]+p[i]>f[j+v[i]]) {
                    f[j+v[i]]=f[j]+p[i];
                }
            }
        }
        if (v[i]<=g&&f[v[i]]>p[i]) {
            f[v[i]]=p[i];
        }
    }
    for (i=1;i<=g;i++) {
        sol=max(sol,f[i]);
    }
    cout<<sol;
}