Número da Lista: 18
Conteúdo da Disciplina: D&C
Matrícula | Aluno |
---|---|
22/2006169 | Natan da Cruz Almeida |
22/1022408 | Paulo Henrique Lamounier |
Este projeto consta com 4 desafios resolvidos do Codeforces, sendo eles:
- (Q1) - D. Permutation Transformation link: Dada uma permutação
a
de números inteiros de 1 an
, você deve transformá-la em uma árvore binária.- O maior elemento da permutação se torna a raiz da árvore.
- Os elementos à esquerda do maior formam a subárvore esquerda.
- Os elementos à direita do maior formam a subárvore direita.
- Para cada elemento da permutação, calcule sua profundidade na árvore (o número de arestas do caminho da raiz até o nó).
- (Q2) - D. a-Good String link: Dada uma string
s
de letras minúsculas, você precisa transformar essa string em uma "c-good string" para o valorc = 'a'
. A string é consideradac-good
se pelo menos uma das seguintes condições for atendida:- Para a string
s = "cdbbaaaa"
, ela é umaa-good string
porque:- A segunda metade (
aaaa
) é composta apenas pora
. - A primeira metade (
cdbb
) é umab-good string
. - A primeira metade de
cdbb
(cd
) é umac-good string
.
- A segunda metade (
- Determinar o número mínimo de mudanças necessárias para transformar a string
s
em umaa-good string
.
- Para a string
- (Q3) - D. Masha and a Beautiful Tree: link O problema pede para organizar as folhas de uma árvore binária completa em ordem crescente da esquerda para a direita. Masha pode inverter os filhos de qualquer nó interno da árvore. O objetivo é encontrar o número mínimo de inversões necessárias para alcançar essa organização ou indicar se é impossível.
- (Q4) - B. Equivalent Strings: link Verifique se duas strings de mesmo comprimento são equivalentes, podendo ser idênticas ou reorganizadas em metades equivalentes de forma recursiva. Retorne "YES" se forem equivalentes, caso contrário, "NO".
Linguagem: C++
Framework: Não possui frameworks
Para utilizar e testar os programas, primeiro é necessário ter um compilador de c/c++ instalado em sua máquina, caso não tenha, utilize esse fórum para baixar
Após instalar o compilador em sua máquina, clone o repositório utilizando
git clone <link do repisotório>
Após clonar o repositório, entre na pasta via terminal e compile os códigos utilizando
g++ -Wall -o <nome_arquivo_compilado> <arquivo_para_compilar>
ex:
g++ -Wall -o main Q1.cpp
Um arquivo executável (.exe) será criado, para realizar os testes, utilize
./main
Dessa forma será possível utilizar os casos de teste dos programas. Também é possível colocar os casos de teste em algum arquivo de texto e utilizar o comando cat para testá-los
cat <arquivo.txt> | ./main