Cod sursa(job #705932)
Utilizator | Albu Alexandru alexalbu95 | Data | 5 martie 2012 10:50:52 |
---|---|---|---|
Problema | Problema rucsacului | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.49 kb |
#include <fstream>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int sol, n, G, i, j, w[10002], g[10002], opt[10002];
int main()
{
fin>>n>>G;
for(i=1; i<=n; ++i) fin>>w[i]>>g[i];
for(i=1; i<=n; ++i)
{
for(j=G-w[i]; j>=0; --j)
if(opt[j+w[i]]<opt[j]+g[i])
{
opt[j+w[i]]=opt[j]+g[i];
if(opt[j+w[i]]>sol) sol=opt[j+w[i]];
}
}
fout<<sol<<"\n";
}