·
Cursos Gerais ·
Linguagens de Programação
Send your question to AI and receive an answer instantly
Recommended for you
2
Sincronizacao de IoTs - Simulacao de Sistema Distribuido para Monitoramento Agricola
Linguagens de Programação
UMG
1
Programa para DJ Gerador de Batidas THUMS - Bruno Ribas
Linguagens de Programação
UMG
1
Relatorio Balistica 6DOF Euler - Analise de Desvio e Simulações Monte Carlo
Linguagens de Programação
UMG
4
Variáveis Indexadas e Matrizes em ECM404: Estruturas de Dados
Linguagens de Programação
UMG
2
Algoritmo de Bolsas Escolares ACME - Relatorio de Descontos e Impostos
Linguagens de Programação
UMG
22
Técnicas de Desenvolvimento de Algoritmos - Material Teórico
Linguagens de Programação
UMG
3
Registro de Aulas Práticas: Procedimentos e Passos para o Registro de Ocorrência
Linguagens de Programação
UMG
1
Histograma de Notas e Maior Nota por Cargo - Concurso
Linguagens de Programação
UMG
6
Atividade em C
Linguagens de Programação
UMG
8
Projeto Angular Catalogo de Livros - Implementacao de Componentes e Servicos
Linguagens de Programação
UMG
Preview text
Descrição Após observar padrões interessantes com seu telescópio Corneana ficou obcecada com alguns grupos de bits observados pelo espaço Ela notou que algumas vezes os bits alternavam seus valores entre 1 e 0 ou entre 0 e 1 Foi definido que o tamanho de uma sequência é o tamanho da maior sequência que tem seus bits alternando entre 1 e 0 ou 0 e 1 Por exemplo dado o grupo de bits 1 0 0 1 0 1 0 0 o tamanho da sequência é 5 1 0 0 1 0 1 0 0 Aqui estão alguns exemplos 0 1 1 0 1 tamanho da sequência é 3 0 1 1 0 1 0 0 0 0 0 tamanho da sequência é 1 0 0 0 0 0 1 1 1 1 1 1 1 tamanho da sequência é 1 1 1 1 1 1 1 1 0 1 0 0 1 0 0 1 tamanho da sequência é 5 0 1 0 0 1 0 1 0 0 1 Serão dados N grupos de bits Printe o tamanho da maior sequência Formato de entrada Será dado um inteiro N número de grupos que serão dados 1 N 20 Então serão dados N pares de linhas no seguinte formato Tamanho do grupo de bits 1 tamanho do grupo de bits 20 Grupo de bits EXEMPLO DE ENTRADA 3 Números de grupos que serão dados 5 Tamanho do grupo de bits 0 1 0 0 Grupo de bits 4 Tamanho do grupo de bits 1 0 1 0 Grupo de bits 8 Tamanho do grupo de bits 0 0 1 0 0 1 0 1 Grupo de bits Formato de saída Printe o tamanho da maior sequência Exemplos de Entrada Saída 3 2 1 1 8 0 0 0 1 0 1 0 0 10 0 1 0 1 1 0 1 0 1 0 6 Descrição Em uma região existe uma espécie de toupeiras elas fazem diversos buracos Esses buracos têm uma ligação com outro buraco esses buracos e suas ligações foram catalogados Uma toca de toupeira é caracterizado por um conjunto de buracos interligados Cada buraco tem exatamente uma ligação essa ligação é única e sempre forma um ciclo Os buracos foram enumerados de 0 a N1 e nunca tem dois buracos com o mesmo identificador e nem um buraco recebe duas ou mais ligações Dado uma lista de ligação de cada buraco informe quantas tocas diferentes existe na região 1 N 10000 No exemplo abaixo existem 6 buracos A ordem da entrada já indica a ligação daquele buraco No exemplo a posição 0 do array dado na entrada indica que buraco 0 está conectado ao 1 Já a posição 1 indica que ele está conectado ao 2 a posição 2 indica que ele está conectado ao 0 a posição 3 indica que ele está conectado ao 5 e assim por diante 6 1 2 0 5 3 4 Formato de entrada A primeira linha tem um inteiro N indicando o número de buracos após isso você receberá uma segunda linha com N inteiros Esses valores correspondem a ligação do enésimo buraco Formato de saída Um inteiro correspondendo a quantidade tocas diferentes Exemplos de Entrada Saída 6 1 2 0 5 3 4 2 Descrição Marquinhos é um aluno do IC Marquinhos sempre sonhou em ser um ninja e ele conseguiu com a ajuda de seu grande amigo Karuto Quaisquer semelhanças com a realidade é pura coincidência tô certo Karuto é o Mestre da Vila da Árvore e deseja treinar Marquinhos para que este se torne o próximo mestre de sua vila Para isso Marquinhos terá que acumular uma quantidade de energia vital superior a 20000 Para tal feito a melhor forma de aprimorar suas habilidades e ao mesmo tempo adquirir mais energia vital é por meio de duelos com outros ninjas Então visto que como Mestre da Vila Karuto sabe a localização dos inimigos da Vila da Árvore no momento decidiu passar para Marquinhos a localização desses Marquinhos domina a técnica de saber o nível de energia do inimigo só em observálo e visto que ele só consegue derrotar um ninja que possui energia vital inferior ou até mesmo igual a dele ao avistar alguém com nível acima ele foge ou seja não haverá luta contra tal ninja Marquinhos ganha a diferença de energia vital entre ele e o inimigo ao derrotálo por exemplo Marquinhos tem energia 200 e luta contra alguém com energia 198 ao derrotar é acrescido a ele 200198 ou seja no final da luta Marquinhos tem 202 de energia Formato de entrada Um número inteiro para o nível de energia atual de Marquinhos Um inteiro n correspondendo ao número de ninjas que Marquinhos irá enfrentar ou não lembrese do Jutsu Nível de Energia n valores inteiros sendo respectivamente os níveis de energia do Inimigo 1 Inimigo 2 Inimigo 3 Inimigo n n inteiros sendo respectivamente a ordem que Marquinhos irá enfrentar ou não cada um dos n inimigos Ex 2 3 1 Primeiro Inimigo 2 depois Inimigo 3 e depois Inimigo 1 Formato de saída Deve ser impresso Uma linha Nível de energia X A porcentagem de inimigos derrotados por Marquinhos no formato Y com duas casas decimais E por fim Marquinhos é o novo Mestre da Vila da Árvore se o nível for maior do que 20000 ou então Continue tentando Exemplos de Entrada Saída 1200 3 2000 900 1100 2 3 1 Nível de energia 1900 6667 Continue tentando Entrada Saída 5700 5 5000 2050 7900 3200 9700 4 5 3 1 2 Nível de energia 21950 8000 Marquinhos é o novo Mestre da Vila da Árvore Você encontrou um robô perdido pela rua e percebeu que o dever dele é de fazer somas matemáticas Entretanto esse robô funciona apenas com números binários na hora de fazer a soma e também retorna um número binário Para o robô funcionar você deve dar N que é o tamanho máximo de dígitos do número binário Então você dará dois números binários de N dígitos e receberá um número binário também de N dígitos que é o resultado da soma Note que se o resultado da soma ultrapassar um número binário de N dígitos Exemplo 1 0 0 1 0 0 1 0 0 0 o robô exibe a mensagem OVERFLOW A soma de números binários ocorre da seguinte forma Número 1 0 1 0 1 1 Número 2 1 0 0 0 1 Resultado 1 1 1 0 0 A soma ocorre com o número diretamente acima dele da seguinte forma Se ambos forem 0 o resultado é 0 se tiver 1 e 0 o resultado é 1 se ambos forem 1 o resultado vai ser 0 mas a soma a esquerda vai receber mais 1 Exemplo Se N for 5 o número binário pode ser 1 0 1 0 0 Dica Faça a matemática da direita para a esquerda Formato de entrada A primeira linha contém um inteiro N representando o tamanho das arrays As próximas duas linhas são arrays de tamanho N Formato de saída O número binário resultado da soma ou a mensagem OVERFLOW caso o número ultrapasse o tamanho original Exemplos de Entrada 5 1 0 0 0 1 0 1 1 1 1 Saída OVERFLOW Entrada 4 1 0 1 0 1 0 0 0 Saída OVERFLOW Entrada 8 0 1 0 0 1 0 1 1 1 0 0 0 0 0 0 1 Saída 1 1 0 0 1 1 0 0 Entrada 5 0 0 0 0 0 1 1 1 1 1 Saída 1 1 1 1 1 Um dos problemas encontrados para gerenciar os recursos de uma mina é ter controle de onde cada túnel pode levar sabendo disso a Sociedade Brasileira de Mineiros pediu para você construir um programa que dado a quantidade de túneis onde cada túnel leva e o túnel que quer saber onde você vai sair imprima na tela o túnel de saída Um túnel é considerado um túnel de saída quando ele leva a 1 Obs1 sempre existe pelo menos um túnel de saída Obs2 um túnel i sempre leva a exatamente um túnel de saída ou seja não existe intersecções entre os túneis Formato de entrada A entrada é composta por 3 linhas a primeira contém um inteiro N 0 n 30 que indica a quantidade de túneis da mina A segunda contém N inteiros Ai1 Ai n representando a qual túnel o túnel i leva A terceira linha contém um inteiro E0 E n que indica o túnel inicial da busca Formato de saída A saída é composta por um inteiro indicando qual o túnel de saída encontrado Exemplos de Entrada 5 1 2 3 1 0 0 Saída 3 Entrada 10 1 1 4 1 5 3 7 9 1 8 2 Saída 3 1 include stdioh include stdlibh int findexittunnelint tunnels int entrancetunnel if tunnelsentrancetunnel 1 return entrancetunnel else return findexittunneltunnels tunnelsentrancetunnel void readtunnelsint tunnels int n if n 0 return scanfd tunnels0 readtunnelstunnels 1 n 1 int main int n scanfd n int tunnelsn readtunnelstunnels n int entrancetunnel scanfd entrancetunnel int exittunnel findexittunneltunnels entrancetunnel printfd exittunnel return 0 2 include stdioh include stdlibh void readbinarydigitint binary int index int N if index N return scanfd binaryindex readbinarydigitbinary index 1 N void binarysumint num1 int num2 int result int N int carry if N 0 if carry printfOVERFLOW exit0 return int sum num1N 1 num2N 1 carry if sum 2 sum 3 resultN 1 0 binarysumnum1 num2 result N 1 1 else resultN 1 sum binarysumnum1 num2 result N 1 0 void printbinaryresultint result int index int N if index N printf return printfd resultindex printbinaryresultresult index 1 N int main int N scanfd N int num1N num2N resultN readbinarydigitnum1 0 N readbinarydigitnum2 0 N binarysumnum1 num2 result N 0 printbinaryresultresult 0 N return 0 3 include stdioh void lerInimigosint inimigos int n int indice if indice n Caso base todos os inimigos foram lidos return scanfd inimigosindice Lê o inimigo da posição indice lerInimigosinimigos n indice 1 Lê o próximo inimigo void lerOrdemint ordem int n int indice if indice n Caso base todos os ninjas foram lidos return scanfd ordemindice Lê o ninja da posição indice lerOrdemordem n indice 1 Lê o próximo ninja void enfrentarInimigosRecursivaint energiaMarquinhos int inimigos int ordem int n int index if index n Caso base todos os inimigos foram enfrentados return int indiceInimigo ordemindex Índice do inimigo na ordem int energiaInimigo inimigosindiceInimigo 1 Energia do inimigo atual if energiaMarquinhos energiaInimigo energiaMarquinhos energiaMarquinhos energiaInimigo Marquinhos ganha a diferença de energia enfrentarInimigosRecursivaenergiaMarquinhos inimigos ordem n index 1 Próximo inimigo void enfrentarInimigosint energiaMarquinhos int inimigos int ordem int n enfrentarInimigosRecursivaenergiaMarquinhos inimigos ordem n 0 Começa da posição 0 int main int energiaMarquinhos n scanfd energiaMarquinhos Energia inicial de Marquinhos scanfd n Número de ninjas int inimigosn int ordemn lerInimigosinimigos n 0 Lê os níveis de energia dos ninjas a partir do índice 0 lerOrdemordem n 0 Lê a ordem dos ninjas a partir do índice 0 enfrentarInimigosenergiaMarquinhos inimigos ordem n double porcentagem doublen 1 n 100 Porcentagem de inimigos derrotados printfNível de energia d energiaMarquinhos printf2lf porcentagem if energiaMarquinhos 20000 printfMarquinhos é o novo Mestre da Vila da Árvore else printfContinue tentando return 0 4 include stdioh void lerInimigosint inimigos int n int indice if indice n Caso base todos os inimigos foram lidos return scanfd inimigosindice Lê o inimigo da posição indice lerInimigosinimigos n indice 1 Lê o próximo inimigo void lerOrdemint ordem int n int indice if indice n Caso base todos os ninjas foram lidos return scanfd ordemindice Lê o ninja da posição indice lerOrdemordem n indice 1 Lê o próximo ninja void enfrentarInimigosRecursivaint energiaMarquinhos int inimigos int ordem int n int index if index n Caso base todos os inimigos foram enfrentados return int indiceInimigo ordemindex Índice do inimigo na ordem int energiaInimigo inimigosindiceInimigo 1 Energia do inimigo atual if energiaMarquinhos energiaInimigo energiaMarquinhos energiaMarquinhos energiaInimigo Marquinhos ganha a diferença de energia enfrentarInimigosRecursivaenergiaMarquinhos inimigos ordem n index 1 Próximo inimigo void enfrentarInimigosint energiaMarquinhos int inimigos int ordem int n enfrentarInimigosRecursivaenergiaMarquinhos inimigos ordem n 0 Começa da posição 0 int main int energiaMarquinhos n scanfd energiaMarquinhos Energia inicial de Marquinhos scanfd n Número de ninjas int inimigosn int ordemn lerInimigosinimigos n 0 Lê os níveis de energia dos ninjas a partir do índice 0 lerOrdemordem n 0 Lê a ordem dos ninjas a partir do índice 0 enfrentarInimigosenergiaMarquinhos inimigos ordem n double porcentagem doublen 1 n 100 Porcentagem de inimigos derrotados printfNível de energia d energiaMarquinhos printf2lf porcentagem if energiaMarquinhos 20000 printfMarquinhos é o novo Mestre da Vila da Árvore else printfContinue tentando return 0 5 include stdioh Função para encontrar o tamanho da maior sequência de bits alternados em um grupo int encontrarMaiorSequenciaint tamanhogrupo int bitanterior bitatual contador maxcontador contador maxcontador 1 Inicializa contador e contador máximo como 1 scanfd bitanterior Lê o primeiro bit Função recursiva para processar cada bit do grupo void processarBitint tamanhorestante Se ainda houver bits a serem processados if tamanhorestante 1 scanfd bitatual Lê o próximo bit Verifica se o bit atual é diferente do anterior if bitatual bitanterior contador Incrementa o contador se os bits forem diferentes else contador 1 Reinicia o contador se os bits forem iguais Atualiza o contador máximo se necessário if contador maxcontador maxcontador contador bitanterior bitatual Atualiza o bit anterior para o próximo bit Chama a função novamente para processar o próximo bit processarBittamanhorestante 1 Inicia o processamento dos bits processarBittamanhogrupo return maxcontador Retorna o tamanho da maior sequência de bits alternados int main int numgrupos printfPor favor insira o número de grupos de bits scanfd numgrupos Função recursiva para encontrar a maior sequência de todos os grupos int encontrarMaiorGlobalint gruposrestantes if gruposrestantes 0 return 0 Retorna 0 se não houver mais grupos int tamanhogrupo printfGrupo d numgrupos gruposrestantes 1 printfTamanho do grupo scanfd tamanhogrupo int tamanhomaiorgrupo encontrarMaiorSequenciatamanhogrupo Encontra a maior sequência do grupo atual Compara com a maior sequência global int maiorsequenciaresto encontrarMaiorGlobalgruposrestantes 1 return tamanhomaiorgrupo maiorsequenciaresto tamanhomaiorgrupo maiorsequenciaresto int maiorsequenciaglobal encontrarMaiorGlobalnumgrupos Encontra a maior sequência entre todos os grupos printfO tamanho da maior sequência de bits alternados entre todos os grupos é d maiorsequenciaglobal return 0
Send your question to AI and receive an answer instantly
Recommended for you
2
Sincronizacao de IoTs - Simulacao de Sistema Distribuido para Monitoramento Agricola
Linguagens de Programação
UMG
1
Programa para DJ Gerador de Batidas THUMS - Bruno Ribas
Linguagens de Programação
UMG
1
Relatorio Balistica 6DOF Euler - Analise de Desvio e Simulações Monte Carlo
Linguagens de Programação
UMG
4
Variáveis Indexadas e Matrizes em ECM404: Estruturas de Dados
Linguagens de Programação
UMG
2
Algoritmo de Bolsas Escolares ACME - Relatorio de Descontos e Impostos
Linguagens de Programação
UMG
22
Técnicas de Desenvolvimento de Algoritmos - Material Teórico
Linguagens de Programação
UMG
3
Registro de Aulas Práticas: Procedimentos e Passos para o Registro de Ocorrência
Linguagens de Programação
UMG
1
Histograma de Notas e Maior Nota por Cargo - Concurso
Linguagens de Programação
UMG
6
Atividade em C
Linguagens de Programação
UMG
8
Projeto Angular Catalogo de Livros - Implementacao de Componentes e Servicos
Linguagens de Programação
UMG
Preview text
Descrição Após observar padrões interessantes com seu telescópio Corneana ficou obcecada com alguns grupos de bits observados pelo espaço Ela notou que algumas vezes os bits alternavam seus valores entre 1 e 0 ou entre 0 e 1 Foi definido que o tamanho de uma sequência é o tamanho da maior sequência que tem seus bits alternando entre 1 e 0 ou 0 e 1 Por exemplo dado o grupo de bits 1 0 0 1 0 1 0 0 o tamanho da sequência é 5 1 0 0 1 0 1 0 0 Aqui estão alguns exemplos 0 1 1 0 1 tamanho da sequência é 3 0 1 1 0 1 0 0 0 0 0 tamanho da sequência é 1 0 0 0 0 0 1 1 1 1 1 1 1 tamanho da sequência é 1 1 1 1 1 1 1 1 0 1 0 0 1 0 0 1 tamanho da sequência é 5 0 1 0 0 1 0 1 0 0 1 Serão dados N grupos de bits Printe o tamanho da maior sequência Formato de entrada Será dado um inteiro N número de grupos que serão dados 1 N 20 Então serão dados N pares de linhas no seguinte formato Tamanho do grupo de bits 1 tamanho do grupo de bits 20 Grupo de bits EXEMPLO DE ENTRADA 3 Números de grupos que serão dados 5 Tamanho do grupo de bits 0 1 0 0 Grupo de bits 4 Tamanho do grupo de bits 1 0 1 0 Grupo de bits 8 Tamanho do grupo de bits 0 0 1 0 0 1 0 1 Grupo de bits Formato de saída Printe o tamanho da maior sequência Exemplos de Entrada Saída 3 2 1 1 8 0 0 0 1 0 1 0 0 10 0 1 0 1 1 0 1 0 1 0 6 Descrição Em uma região existe uma espécie de toupeiras elas fazem diversos buracos Esses buracos têm uma ligação com outro buraco esses buracos e suas ligações foram catalogados Uma toca de toupeira é caracterizado por um conjunto de buracos interligados Cada buraco tem exatamente uma ligação essa ligação é única e sempre forma um ciclo Os buracos foram enumerados de 0 a N1 e nunca tem dois buracos com o mesmo identificador e nem um buraco recebe duas ou mais ligações Dado uma lista de ligação de cada buraco informe quantas tocas diferentes existe na região 1 N 10000 No exemplo abaixo existem 6 buracos A ordem da entrada já indica a ligação daquele buraco No exemplo a posição 0 do array dado na entrada indica que buraco 0 está conectado ao 1 Já a posição 1 indica que ele está conectado ao 2 a posição 2 indica que ele está conectado ao 0 a posição 3 indica que ele está conectado ao 5 e assim por diante 6 1 2 0 5 3 4 Formato de entrada A primeira linha tem um inteiro N indicando o número de buracos após isso você receberá uma segunda linha com N inteiros Esses valores correspondem a ligação do enésimo buraco Formato de saída Um inteiro correspondendo a quantidade tocas diferentes Exemplos de Entrada Saída 6 1 2 0 5 3 4 2 Descrição Marquinhos é um aluno do IC Marquinhos sempre sonhou em ser um ninja e ele conseguiu com a ajuda de seu grande amigo Karuto Quaisquer semelhanças com a realidade é pura coincidência tô certo Karuto é o Mestre da Vila da Árvore e deseja treinar Marquinhos para que este se torne o próximo mestre de sua vila Para isso Marquinhos terá que acumular uma quantidade de energia vital superior a 20000 Para tal feito a melhor forma de aprimorar suas habilidades e ao mesmo tempo adquirir mais energia vital é por meio de duelos com outros ninjas Então visto que como Mestre da Vila Karuto sabe a localização dos inimigos da Vila da Árvore no momento decidiu passar para Marquinhos a localização desses Marquinhos domina a técnica de saber o nível de energia do inimigo só em observálo e visto que ele só consegue derrotar um ninja que possui energia vital inferior ou até mesmo igual a dele ao avistar alguém com nível acima ele foge ou seja não haverá luta contra tal ninja Marquinhos ganha a diferença de energia vital entre ele e o inimigo ao derrotálo por exemplo Marquinhos tem energia 200 e luta contra alguém com energia 198 ao derrotar é acrescido a ele 200198 ou seja no final da luta Marquinhos tem 202 de energia Formato de entrada Um número inteiro para o nível de energia atual de Marquinhos Um inteiro n correspondendo ao número de ninjas que Marquinhos irá enfrentar ou não lembrese do Jutsu Nível de Energia n valores inteiros sendo respectivamente os níveis de energia do Inimigo 1 Inimigo 2 Inimigo 3 Inimigo n n inteiros sendo respectivamente a ordem que Marquinhos irá enfrentar ou não cada um dos n inimigos Ex 2 3 1 Primeiro Inimigo 2 depois Inimigo 3 e depois Inimigo 1 Formato de saída Deve ser impresso Uma linha Nível de energia X A porcentagem de inimigos derrotados por Marquinhos no formato Y com duas casas decimais E por fim Marquinhos é o novo Mestre da Vila da Árvore se o nível for maior do que 20000 ou então Continue tentando Exemplos de Entrada Saída 1200 3 2000 900 1100 2 3 1 Nível de energia 1900 6667 Continue tentando Entrada Saída 5700 5 5000 2050 7900 3200 9700 4 5 3 1 2 Nível de energia 21950 8000 Marquinhos é o novo Mestre da Vila da Árvore Você encontrou um robô perdido pela rua e percebeu que o dever dele é de fazer somas matemáticas Entretanto esse robô funciona apenas com números binários na hora de fazer a soma e também retorna um número binário Para o robô funcionar você deve dar N que é o tamanho máximo de dígitos do número binário Então você dará dois números binários de N dígitos e receberá um número binário também de N dígitos que é o resultado da soma Note que se o resultado da soma ultrapassar um número binário de N dígitos Exemplo 1 0 0 1 0 0 1 0 0 0 o robô exibe a mensagem OVERFLOW A soma de números binários ocorre da seguinte forma Número 1 0 1 0 1 1 Número 2 1 0 0 0 1 Resultado 1 1 1 0 0 A soma ocorre com o número diretamente acima dele da seguinte forma Se ambos forem 0 o resultado é 0 se tiver 1 e 0 o resultado é 1 se ambos forem 1 o resultado vai ser 0 mas a soma a esquerda vai receber mais 1 Exemplo Se N for 5 o número binário pode ser 1 0 1 0 0 Dica Faça a matemática da direita para a esquerda Formato de entrada A primeira linha contém um inteiro N representando o tamanho das arrays As próximas duas linhas são arrays de tamanho N Formato de saída O número binário resultado da soma ou a mensagem OVERFLOW caso o número ultrapasse o tamanho original Exemplos de Entrada 5 1 0 0 0 1 0 1 1 1 1 Saída OVERFLOW Entrada 4 1 0 1 0 1 0 0 0 Saída OVERFLOW Entrada 8 0 1 0 0 1 0 1 1 1 0 0 0 0 0 0 1 Saída 1 1 0 0 1 1 0 0 Entrada 5 0 0 0 0 0 1 1 1 1 1 Saída 1 1 1 1 1 Um dos problemas encontrados para gerenciar os recursos de uma mina é ter controle de onde cada túnel pode levar sabendo disso a Sociedade Brasileira de Mineiros pediu para você construir um programa que dado a quantidade de túneis onde cada túnel leva e o túnel que quer saber onde você vai sair imprima na tela o túnel de saída Um túnel é considerado um túnel de saída quando ele leva a 1 Obs1 sempre existe pelo menos um túnel de saída Obs2 um túnel i sempre leva a exatamente um túnel de saída ou seja não existe intersecções entre os túneis Formato de entrada A entrada é composta por 3 linhas a primeira contém um inteiro N 0 n 30 que indica a quantidade de túneis da mina A segunda contém N inteiros Ai1 Ai n representando a qual túnel o túnel i leva A terceira linha contém um inteiro E0 E n que indica o túnel inicial da busca Formato de saída A saída é composta por um inteiro indicando qual o túnel de saída encontrado Exemplos de Entrada 5 1 2 3 1 0 0 Saída 3 Entrada 10 1 1 4 1 5 3 7 9 1 8 2 Saída 3 1 include stdioh include stdlibh int findexittunnelint tunnels int entrancetunnel if tunnelsentrancetunnel 1 return entrancetunnel else return findexittunneltunnels tunnelsentrancetunnel void readtunnelsint tunnels int n if n 0 return scanfd tunnels0 readtunnelstunnels 1 n 1 int main int n scanfd n int tunnelsn readtunnelstunnels n int entrancetunnel scanfd entrancetunnel int exittunnel findexittunneltunnels entrancetunnel printfd exittunnel return 0 2 include stdioh include stdlibh void readbinarydigitint binary int index int N if index N return scanfd binaryindex readbinarydigitbinary index 1 N void binarysumint num1 int num2 int result int N int carry if N 0 if carry printfOVERFLOW exit0 return int sum num1N 1 num2N 1 carry if sum 2 sum 3 resultN 1 0 binarysumnum1 num2 result N 1 1 else resultN 1 sum binarysumnum1 num2 result N 1 0 void printbinaryresultint result int index int N if index N printf return printfd resultindex printbinaryresultresult index 1 N int main int N scanfd N int num1N num2N resultN readbinarydigitnum1 0 N readbinarydigitnum2 0 N binarysumnum1 num2 result N 0 printbinaryresultresult 0 N return 0 3 include stdioh void lerInimigosint inimigos int n int indice if indice n Caso base todos os inimigos foram lidos return scanfd inimigosindice Lê o inimigo da posição indice lerInimigosinimigos n indice 1 Lê o próximo inimigo void lerOrdemint ordem int n int indice if indice n Caso base todos os ninjas foram lidos return scanfd ordemindice Lê o ninja da posição indice lerOrdemordem n indice 1 Lê o próximo ninja void enfrentarInimigosRecursivaint energiaMarquinhos int inimigos int ordem int n int index if index n Caso base todos os inimigos foram enfrentados return int indiceInimigo ordemindex Índice do inimigo na ordem int energiaInimigo inimigosindiceInimigo 1 Energia do inimigo atual if energiaMarquinhos energiaInimigo energiaMarquinhos energiaMarquinhos energiaInimigo Marquinhos ganha a diferença de energia enfrentarInimigosRecursivaenergiaMarquinhos inimigos ordem n index 1 Próximo inimigo void enfrentarInimigosint energiaMarquinhos int inimigos int ordem int n enfrentarInimigosRecursivaenergiaMarquinhos inimigos ordem n 0 Começa da posição 0 int main int energiaMarquinhos n scanfd energiaMarquinhos Energia inicial de Marquinhos scanfd n Número de ninjas int inimigosn int ordemn lerInimigosinimigos n 0 Lê os níveis de energia dos ninjas a partir do índice 0 lerOrdemordem n 0 Lê a ordem dos ninjas a partir do índice 0 enfrentarInimigosenergiaMarquinhos inimigos ordem n double porcentagem doublen 1 n 100 Porcentagem de inimigos derrotados printfNível de energia d energiaMarquinhos printf2lf porcentagem if energiaMarquinhos 20000 printfMarquinhos é o novo Mestre da Vila da Árvore else printfContinue tentando return 0 4 include stdioh void lerInimigosint inimigos int n int indice if indice n Caso base todos os inimigos foram lidos return scanfd inimigosindice Lê o inimigo da posição indice lerInimigosinimigos n indice 1 Lê o próximo inimigo void lerOrdemint ordem int n int indice if indice n Caso base todos os ninjas foram lidos return scanfd ordemindice Lê o ninja da posição indice lerOrdemordem n indice 1 Lê o próximo ninja void enfrentarInimigosRecursivaint energiaMarquinhos int inimigos int ordem int n int index if index n Caso base todos os inimigos foram enfrentados return int indiceInimigo ordemindex Índice do inimigo na ordem int energiaInimigo inimigosindiceInimigo 1 Energia do inimigo atual if energiaMarquinhos energiaInimigo energiaMarquinhos energiaMarquinhos energiaInimigo Marquinhos ganha a diferença de energia enfrentarInimigosRecursivaenergiaMarquinhos inimigos ordem n index 1 Próximo inimigo void enfrentarInimigosint energiaMarquinhos int inimigos int ordem int n enfrentarInimigosRecursivaenergiaMarquinhos inimigos ordem n 0 Começa da posição 0 int main int energiaMarquinhos n scanfd energiaMarquinhos Energia inicial de Marquinhos scanfd n Número de ninjas int inimigosn int ordemn lerInimigosinimigos n 0 Lê os níveis de energia dos ninjas a partir do índice 0 lerOrdemordem n 0 Lê a ordem dos ninjas a partir do índice 0 enfrentarInimigosenergiaMarquinhos inimigos ordem n double porcentagem doublen 1 n 100 Porcentagem de inimigos derrotados printfNível de energia d energiaMarquinhos printf2lf porcentagem if energiaMarquinhos 20000 printfMarquinhos é o novo Mestre da Vila da Árvore else printfContinue tentando return 0 5 include stdioh Função para encontrar o tamanho da maior sequência de bits alternados em um grupo int encontrarMaiorSequenciaint tamanhogrupo int bitanterior bitatual contador maxcontador contador maxcontador 1 Inicializa contador e contador máximo como 1 scanfd bitanterior Lê o primeiro bit Função recursiva para processar cada bit do grupo void processarBitint tamanhorestante Se ainda houver bits a serem processados if tamanhorestante 1 scanfd bitatual Lê o próximo bit Verifica se o bit atual é diferente do anterior if bitatual bitanterior contador Incrementa o contador se os bits forem diferentes else contador 1 Reinicia o contador se os bits forem iguais Atualiza o contador máximo se necessário if contador maxcontador maxcontador contador bitanterior bitatual Atualiza o bit anterior para o próximo bit Chama a função novamente para processar o próximo bit processarBittamanhorestante 1 Inicia o processamento dos bits processarBittamanhogrupo return maxcontador Retorna o tamanho da maior sequência de bits alternados int main int numgrupos printfPor favor insira o número de grupos de bits scanfd numgrupos Função recursiva para encontrar a maior sequência de todos os grupos int encontrarMaiorGlobalint gruposrestantes if gruposrestantes 0 return 0 Retorna 0 se não houver mais grupos int tamanhogrupo printfGrupo d numgrupos gruposrestantes 1 printfTamanho do grupo scanfd tamanhogrupo int tamanhomaiorgrupo encontrarMaiorSequenciatamanhogrupo Encontra a maior sequência do grupo atual Compara com a maior sequência global int maiorsequenciaresto encontrarMaiorGlobalgruposrestantes 1 return tamanhomaiorgrupo maiorsequenciaresto tamanhomaiorgrupo maiorsequenciaresto int maiorsequenciaglobal encontrarMaiorGlobalnumgrupos Encontra a maior sequência entre todos os grupos printfO tamanho da maior sequência de bits alternados entre todos os grupos é d maiorsequenciaglobal return 0