Cod sursa(job #2444012)
| Utilizator | Data | 29 iulie 2019 23:59:50 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.58 kb |
#include <iostream>
#include <fstream>
#include <assert.h>
using namespace std;
#define ma1 5005
#define ma2 10010
ifstream fi("rucsac.in");
ofstream fo("rucsac.out");
int w[ma1],p[ma1];
int op[ma2];
int n,g;
int main()
{
int sol=0;
fi>>n>>g;
for(int i=1;i<=n;i++)
fi>>w[i]>>p[i];
for(int i=1;i<=n;i++)
for(int j=g-w[i];j>=0;j--)
if(op[j+w[i]]<op[j]+p[i])
{
op[j+w[i]]=op[j]+p[i];
if(op[j+w[i]]>sol)
sol=op[j+w[i]];
}
fo<<sol;
return 0;
}
