Cod sursa(job #3134809)

Utilizator CristiL75Cristi Latcu CristiL75 Data 31 mai 2023 00:46:16
Problema Problema rucsacului Scor 10
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#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;
}