Closed Rebeca-Lie-Yatsuzuka-Silva closed 3 years ago
@Rebeca-Lie-Yatsuzuka-Silva de qual laboratório?
O último.
Então... ele é meio grandinho, não tem como copiar e colar a entrada aqui não.
Vou anexar o arquivo de entrada.
Note que o arquivo realmente é bem grande e, caso você esteja utilizando uma estrutrua de dados ou método inadequados, realmente vai estourar a pilha de memória ou alguma coisa do tipo.
@iagoac criar duas arvores simultâneas seria um método inadequado?
O susy não tem lá muita memória disponível para os usuários.
Desta forma, acredito que seja melhor você ler os dados da primeira pessoa, criar a árvore e salvar a altura.
Logo após, você deleta esta árvore e começa a ler os dados da segunda pessoa para, também, montar sua árvore.
Note que é muito importante você economizar espaço em cada nó da árvore. Caso você utilize um tipo de variável que precise de muitos bits (um long long int
, por exemplo) pode ser que dê problemas com a memória do Susy.
Beleza! Vou deletar a primeira árvore para inserir a outra. No caso estou usando int mesmo.
Eu fiz isso, mas agora estou obtendo outra mensagem:
Teste 01: resultado correto
Teste 02: resultado correto
Teste 03: resultado correto
Teste 04: resultado correto
Teste 05: resultado correto
Teste 06: resultado correto
Teste 07: resultado correto
Teste 08: resultado correto
Teste 09: resultado correto
Teste 10: resultado correto
Teste 11: resultado correto
Teste 12: resultado correto
Teste 13: resultado correto
Teste 14: resultado correto
Teste 15: erro de processamento
tempo máximo de processamento excedido (código 137)
Creio que esteja o mais otimizado possível para uma árvore nao balanceada... Vou precisar balanceá-la? Ou existe algo que eu posso melhorar mesmo sendo nao balanceada?
@ianloron00 tudo o que eu consigo lhe dizer é que seu código não é eficiente da maneira que você diz.
Vou precisar balanceá-la?
Não é necessário balancear a árvore. Aliás, se você fizer uma árvore balanceada, a resposta será errada.
Ou existe algo que eu posso melhorar mesmo sendo nao balanceada?
Provavelmente a sua função de inserção na árvore pode ser melhorada. Mesmo sem ver código nenhum, acredito que ela é que seja a maior responsável pelo tempo gasto para execução de seu algoritmo.
Professor, você poderia, dos testes fechados, fornecer pelo menos a entrada do teste 15? Apenas nele o meu programa está dando a mensagem de erro: "erro de processamento tamanho máximo da pilha ou da memória dinâmica excedido, ou talvez apontador inválido (código 139)"