Cod sursa(job #1006884)
| Utilizator | Data | 7 octombrie 2013 21:15:14 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.66 kb |
#include <iostream>
#include<fstream>
using namespace std;
int n,greutate, v[5073],g[5073],last[10073],best[10073], rasp=0;
void problem()
{
for (int i=0;i<n;i++)
for (int j=greutate-g[i];j>=0;j--)
{
best[j+g[j]]=max(best[j+g[j]], v[i]+best[j]);
if (best[j+g[j]]>rasp)
rasp=best[j+g[j]];
last[j+g[i]]=i;
}
}
int main()
{
ifstream in("rucsac.in");
in>>n>>greutate;
for (int i=0;i<n;i++)
{
in>>v[i]>>g[i];
}
problem();
ofstream out("rucsac.out");
out<<rasp;
return 0;
}
