Pagini recente » Cod sursa (job #1908611) | Cod sursa (job #290981) | Cod sursa (job #850081) | Cod sursa (job #1329983) | Cod sursa (job #3134081)
#include <stdio.h>
#include <stdlib.h>
#define SIZE 5000
int n , g , maxim=0;
typedef struct obiect
{
int greutate;
int profit;
}obiect;
obiect array[SIZE];
void backtracking(int p_curent , int g_curent , int poz)
{
if(p_curent>maxim)
{
maxim=p_curent;
}
for(int i=poz ; i<n ; i++)
{
if(array[i].greutate+g_curent<=g)
{
backtracking(array[i].profit+p_curent , array[i].greutate+g_curent , i+1);
}
}
}
int main(void)
{
FILE *f1 , *f2;
f1=fopen("rucsac.in" , "r");
f2=fopen("rucsac.out" , "w");
fscanf(f1 , "%d" , &n);
fscanf(f1 , "%d" , &g);
for(int i=0 ; i<n ; i++)
{
fscanf(f1 , "%d" , &array[i].greutate);
fscanf(f1 , "%d" , &array[i].profit);
}
backtracking(0 , 0 , 0);
fprintf(f2 , "%d\n" , maxim);
return 0;
}