Pagini recente » Cod sursa (job #1454448) | Cod sursa (job #2894576) | Cod sursa (job #2171290) | Cod sursa (job #2230198) | Cod sursa (job #2615037)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
typedef struct rucsac
{
int capacitate;
int pret;
bool ok;
};
int max(int a, int b)
{
if (a < b)
return b;
else
return a;
}
int pret_max(int capacitate_max, rucsac* produse, int n)
{
if (n == -1)
return 0;
int a;
if (capacitate_max - produse[n].capacitate >= 0)
{
a = pret_max(capacitate_max - produse[n].capacitate, produse, n - 1) + produse[n].pret;
}
else
a = 0;
int b = pret_max(capacitate_max, produse, n - 1);
return max(a, b);
}
int main()
{
int n,capacitate_max;
FILE* fin = fopen("rucsac.in", "r");
fscanf(fin, "%d%d", &n,&capacitate_max);
rucsac* produse = (rucsac*)malloc(n * sizeof(rucsac));
for (int i = 0; i < n; i++)
{
fscanf(fin, "%d%d", &produse[i].capacitate, &produse[i].pret);
}
FILE* fout = fopen("rucsac.out", "w");
fprintf(fout,"%d",pret_max(capacitate_max, produse, n-1));
}