Pagini recente » Cod sursa (job #499094) | Cod sursa (job #2378852) | Cod sursa (job #3228183) | Cod sursa (job #845762) | Cod sursa (job #3134809)
#include <stdio.h>
#include <stdlib.h>
int N, G;
int W[5005],P[5005];
int max = 0;
int sol[5005];
void back(int i, int cW, int cP) {
int j;
if (i == N)
{
if (cP> max)
{
max=cP;
for (j=0;j<N;j++)
sol[j] =W[j];
}
return;
}
back(i + 1,cW,cP);
if (cW+W[i]<=G) {
back(i + 1,cW+W[i],cP+P[i]);
}
}
int main()
{
FILE *in,*out;
in=fopen("rucsac.in","r");
out=fopen("rucsac.out","w");
fscanf(in,"%d",&N);
fscanf(in,"%d",&G);
for (int i = 0; i < N; i++)
{
fscanf(in,"%d",&W[i]);
fscanf(in,"%d",&P[i]);
}
back(0, 0, 0);
fprintf(out,"%d",max);
return 0;
}