Cod sursa(job #2615037)

Utilizator RaduQQTCucuta Radu RaduQQT Data 13 mai 2020 15:41:16
Problema Problema rucsacului Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.94 kb
#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));
	
}