Pagini recente » Cod sursa (job #1729913) | Cod sursa (job #1437260) | Cod sursa (job #1744430) | Cod sursa (job #1766697) | Cod sursa (job #2713268)
#include <iostream>
#include <fstream>
using namespace std;
int n,g;
int smax;
typedef struct obiect_t {
int val;
int greutate;
} obiect;
obiect obiecte[5000];
void recursiv(int k, int gc, int pc) {
int tgc=gc+obiecte[k].greutate;
int valk=obiecte[k].val;
bool nultim=k<n-1;
k++;
if(tgc<=g) {
int tpc=pc+valk;
if(tpc>smax)
smax=tpc;
if(tgc<g && nultim)
recursiv(k,tgc,tpc);
}
if(nultim)
recursiv(k,gc,pc);
}
int main() {
FILE*cfin,*cfout;
cfin=fopen("rucsac.in","r");
cfout=fopen("rucsac.out","w");
fscanf(cfin,"%d%d",&n,&g);
for(int i=0; i<n; i++)
fscanf(cfin,"%d%d",&obiecte[i].greutate,&obiecte[i].val);
recursiv(0,0,0);
fprintf(cfout,"%d",smax);
return 0;
}