Pagini recente » Cod sursa (job #369249) | Cod sursa (job #2036268) | Cod sursa (job #2973148) | Cod sursa (job #1520142) | Cod sursa (job #1310418)
#include <iostream>
#include <iomanip>
#include <fstream>
#include <cstring>
using namespace std;
int n,G,w[5010],p[5010], A[10010], B[10010];
void Citire();
void Afisare();
void Rezolvare();
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int main()
{
Citire();
Rezolvare();
Afisare();
return 0;
}
void Citire()
{
fin>>n>>G;
for(int i=1;i<=n;++i)
fin >> w[i]>>p[i];
fin.close();
}
void Rezolvare(){
int p1, p2;
for(int i=1;i<=n;++i){
for(int g=1;g<=G;++g){
p1 = A[g];
p2 = 0;
if( g>=w[i])
p2 = A[g-w[i]]+p[i];
B[g] = p1>p2?p1:p2;
}
memcpy(A,B,sizeof(B));
}
}
void Afisare()
{
fout << A[G];
fout.close();
}