Cod sursa(job #2224954)
Utilizator | Data | 25 iulie 2018 16:43:26 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.59 kb |
#define NMAX 5005
#define GMAX 10005
#include <iostream>
#include <fstream>
using namespace std;
ifstream f1("rucsac.in");
ofstream f2("rucsac.out");
int N,G;
struct date
{
int g,p;
};
date obiecte[NMAX];
int rucsac[GMAX];
int main()
{
f1>>N>>G;
for(int i=1;i<=N;i++)
{
f1>>obiecte[i].g>>obiecte[i].p;
}
for(int j=1;j<=N;j++)
{
for(int i=G;i>=obiecte[j].g;i--)
{
int val=rucsac[i-obiecte[j].g]+obiecte[j].p;
if(val>rucsac[i]) rucsac[i]=val;
}
}
f2<<rucsac[G];
return 0;
}