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