From 9c72b25315fc70634bbe61ce92e6a619f8fd9ff3 Mon Sep 17 00:00:00 2001
From: Pedro Folloni Pesserl <fpesserl7@gmail.com>
Date: Sat, 26 Nov 2022 22:04:22 -0300
Subject: [PATCH] everything works

---
 tp4/lib_conjunto.c |   1 -
 tp4/tp4            | Bin 0 -> 30696 bytes
 tp4/tp4.c          |  95 +++++++++++++++++++++++++++++++++++++++++++--
 3 files changed, 91 insertions(+), 5 deletions(-)
 create mode 100755 tp4/tp4

diff --git a/tp4/lib_conjunto.c b/tp4/lib_conjunto.c
index 3ddab09..b4907d7 100644
--- a/tp4/lib_conjunto.c
+++ b/tp4/lib_conjunto.c
@@ -26,7 +26,6 @@ conjunto_t *cria_cjt(int max) {
 }
 
 conjunto_t *destroi_cjt(conjunto_t *c) {
-	c->card = 0;
 	free(c->v);
 	c->v = NULL;
 	free(c);
diff --git a/tp4/tp4 b/tp4/tp4
new file mode 100755
index 0000000000000000000000000000000000000000..9d9ad0fca0d22b2b508e54470ba4c6ec6a2a4732
GIT binary patch
literal 30696
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
HirW7KJDh4`

literal 0
HcmV?d00001

diff --git a/tp4/tp4.c b/tp4/tp4.c
index 5f3e4f6..d7f510c 100644
--- a/tp4/tp4.c
+++ b/tp4/tp4.c
@@ -3,19 +3,106 @@
 #include "lib_conjunto.h"
 #define MAX 100
 
-int main ()
-{
+conjunto_t *le_conjunto_simples(int max) {
+	conjunto_t *leitura;
+	if ( !(leitura = cria_cjt(max)) )
+		return NULL;
+	int n;
+	scanf("%d", &n);
+	while (n) {
+		insere_cjt(leitura, n);
+		scanf("%d", &n);
+	}
+	return leitura;
+}
 
-    /* ler os herois e suas habilidades */
+conjunto_t **le_vetor_conjuntos(int *tam, int max) {
+	conjunto_t **vetor_c;
+	if ( !(vetor_c = malloc(sizeof(conjunto_t *) * max)) )
+		return NULL;
+	int n, m;
+	scanf("%d", &n);
+	while (n) {
+		if ( !(vetor_c[*tam] = cria_cjt(10)) )
+			return NULL;
+		insere_cjt(vetor_c[*tam], n);
+		scanf("%d", &m);
+		while (m) {
+			insere_cjt(vetor_c[*tam], m);
+			scanf("%d", &m);
+		}
+		*tam = *tam + 1;
+		scanf("%d", &n);
+	}
+	return vetor_c;
+}
 
-    /* ler a missao */
+conjunto_t **libera_vetor_conjuntos(conjunto_t **vetor_c, int tam) {
+	int i;
+	for (i = 0; i < tam; i++)
+		vetor_c[i] = destroi_cjt(vetor_c[i]);
+	free(vetor_c);
+	return NULL;
+}
 
+conjunto_t *acha_solucao(conjunto_t **herois, conjunto_t *missao, conjunto_t **equipes, int tam_equipes) {
+	conjunto_t *menor;
+	menor = cria_cjt(10);
+	conjunto_t *uniao_old;
+	conjunto_t *uniao;
+	int i, j;
+	
+	for (i = 0; i < tam_equipes; i++) {
+		uniao = copia_cjt(herois[equipes[i]->v[0] - 1]);
+		/* copia o conjunto de habilidades de heroi	correspondente ao primeiro elemento do conjunto equipe da posicao atual do vetor de equipes. ex: se a equipe atual é [5 6 7], copia o quinto conjunto de habilidades de heroi (de indice 4). */
+		for (j = 1; j < equipes[i]->card; j++) {
+			uniao_old = uniao;
+			uniao = uniao_cjt(uniao, herois[equipes[i]->v[j] - 1]);
+			uniao_old = destroi_cjt(uniao_old);
+		}
+			/* realiza a uniao de todos os conjuntos de habilidades de heroi referenciados no conjunto equipe da posicao atual do vetor de equipes. */
+		if (contido_cjt(missao, uniao)) {
+			if (vazio_cjt(menor) || equipes[i]->card < menor->card) {
+				menor = destroi_cjt(menor);
+				menor = copia_cjt(equipes[i]);
+			}
+		}
+		uniao = destroi_cjt(uniao);
+	}
+	
+	return menor;
+}
+
+int main() {
+    /* ler os herois e suas habilidades */
+	int tam_herois = 0;
+	conjunto_t **vetor_herois;
+	vetor_herois = le_vetor_conjuntos(&tam_herois, MAX);
+	
+    /* ler a missao */
+	conjunto_t *missao;
+	missao = le_conjunto_simples(20);
+	
     /* ler as equipes de herois */
+	int tam_equipes = 0;
+	conjunto_t **vetor_equipes;
+	vetor_equipes = le_vetor_conjuntos(&tam_equipes, MAX);
 
     /* a solucao eh encontrada se a missao esta contido na uniao das 
      * habilidades de uma equipe, mas tomando-se aquela de menor tamanho. */
+	conjunto_t *solucao;
+	solucao = acha_solucao(vetor_herois, missao, vetor_equipes, tam_equipes);
+	if (vazio_cjt(solucao)) {
+		printf("NENHUMA\n");
+	} else {
+		imprime_cjt(solucao);
+	}
 
     /* libera toda a memoria alocada dinamicamente */
+	vetor_herois = libera_vetor_conjuntos(vetor_herois, tam_herois);
+	missao = destroi_cjt(missao);
+	vetor_equipes = libera_vetor_conjuntos(vetor_equipes, tam_equipes);
+	solucao = destroi_cjt(solucao);
 
     return 0;
 }
-- 
GitLab