Cod sursa(job #2771843)
Utilizator | 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;
}