Dado uma lista de períodos, aonde cada período tem um inicio fim, faça um algoritmo que junte os períodos em que ocorre intersecção.
--
http://ccppbrasil.github.io/
https://twitter.com/ccppbrasil
[&] C & C++ Brasil - http://www.ccppbrasil.org/
Para sair dessa lista, envie um e-mail para ccppbrasil-...@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo "ccppbrasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para ccppbrasil+...@googlegroups.com.
Para ver esta conversa, acesse https://groups.google.com/d/msgid/ccppbrasil/6abebaba-7f48-43a0-a17f-d43f3a123b63n%40googlegroups.com.
Thiago,Alguma restrição ? C puro, C++ ? Pode ou não usar recursividade ?
--
http://ccppbrasil.github.io/
https://twitter.com/ccppbrasil
[&] C & C++ Brasil - http://www.ccppbrasil.org/
Para sair dessa lista, envie um e-mail para ccppbrasil-...@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo "ccppbrasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para ccppbrasil+...@googlegroups.com.
Para ver esta conversa, acesse https://groups.google.com/d/msgid/ccppbrasil/CAP7PvopbUEzYvnEke%2BoQ19BryuY9sND6ZNXVHGvX_d7mp%3DZw6g%40mail.gmail.com.
Sim.. mas as vezes colocar a restrição é colocar a realidade também. Por exemplo, evitar usar float pois os sistemas embutidos que você irá mexer costumam não vir com processador de ponto flutuante.É apenas um exemplo real. :-)Hoje em dia os terminais de pagamento de conta estão aceitando sistemas operacionais mais robustos como Linux e Android, e agora está cada vez mais raro um terminal não ter um processador de ponto flutuante.Fora que existem bibliotecas que podem ser utilizadas por compiladores para executar operações de ponto flutuante utilizando estruturas de dados próprias (ou até mesmo usando inteiros), conhecido como soft-float.Fiz o código mas o mesmo ficou grande. Vou publicar o link e depois vou ver se consigo refatorar o mesmo.Segue o link:Esse tipo de desafio é interessante Thiago, mas tem um escopo bem diferente dos desafios como troca de valor de duas variaveis sem usar uma auxiliar.Ainda mais que com o chat gpt e IA, não é tão difícil montar um código desses.
--
http://ccppbrasil.github.io/
https://twitter.com/ccppbrasil
[&] C & C++ Brasil - http://www.ccppbrasil.org/
Para sair dessa lista, envie um e-mail para ccppbrasil-...@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo "ccppbrasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para ccppbrasil+...@googlegroups.com.
Para ver esta conversa, acesse https://groups.google.com/d/msgid/ccppbrasil/75603338-996a-4457-b46b-b114274b7400n%40googlegroups.com.
Para ver esta conversa, acesse https://groups.google.com/d/msgid/ccppbrasil/ce97cb02-9fe8-4721-9a2c-d92f5bb5641an%40googlegroups.com.
* Aqui a única exigência é que cada período seja delimitado por início e fim.
* Ou seja, deve existir o conceito de intervalo entre o início e o fim. Caso voce suponha que o desafio esteja falando de intervalos numéricos, temos as seguintes possibilidades:
--> [início .. inicio+N], onde N deve ser maior que 0
NOTA: É importante CONSTAR QUE o desafio não deixa claro se é válido períodos nulos, onde o início é exatamente igual ao fim.
Logo, assumindo intervalos numéricos, também é válido a seguinte notação matemática:
--> [início .. inicio+N], onde N deve ser igual ou maior que 0
Nesse caso você deve verificar se um determinado período fornecido como entrada está PARCIALMENTE ou COMPLETAMENTE dentro do espaço delimitado de outro período.
Caso seja possível encontrar uma sobreposição entre dois ou mais períodos, você deve juntar os períodos. Só que ao juntar 2 ou mais períodos que se sobrepõem, você DEVEGERAR como resultado UM só período fruto do resultado dessa sobreposição.
Exemplo:
* 4 Períodos de entrada: (0,100), (2-30), (3-5), (89-100)
* 1 Período de saída: (0,100)
Outro exemplo:* 5 Períodos de entrada: (0,100), (2-30), (3-5), (89-100), (3800, 5000)* 2 Períodos de saída: (0,100), (3800, 5000)
Nota 1:Não foi definido no enunciado do desafio se o início e fim são valores inteiros POSITIVOS, logo temos como válidos os
seguintes períodos de entrada:( - 234, - 10 ), (-80, -50), (-1.0000.000, 0), (30, 40)
Que como resultado geraria os seguintes períodos de saída:
(-1.0000.000, 0), (30, 40)Nota 2:
Também não foi definido e explicitado no enunciado do desafio a possibilidade de períodos nulos, onde inicio é exatamente igual ao fim (assumindo
que início e fim possuem valores numéricos). Logo podemos ter como períodos de entrada:
( 3, 3), (-9.999.999.999, -9.999.999.999 ) , ( - 234, - 10 ), (-80, -50), (-1.0000.000, 0), (30, 40)
Que como resultado geraria os seguintes períodos de saída:
(-9.999.999.999, -9.999.999.999 ) , (-1.0000.000, 0), (3,3), (30, 40)
Para ver esta conversa, acesse https://groups.google.com/d/msgid/ccppbrasil/CAEX1xDWGm9X_wu4wtKYfRQ%2BVRQJEvyfC6xKT%3Dn3rDvB4CVwM4A%40mail.gmail.com.
Para ver esta conversa, acesse https://groups.google.com/d/msgid/ccppbrasil/CABoUv5Si56RBjJhhYBp1%3DCfZae6AdV_E%3DNwFMAXUgDm%2B5ZXssw%40mail.gmail.com.
Para ver esta conversa, acesse https://groups.google.com/d/msgid/ccppbrasil/CAO8omAFT9jX9Api%2B5w20owt33vu6zO7Q060OBZPy-xNC6pWjog%40mail.gmail.com.
Para ver esta conversa, acesse https://groups.google.com/d/msgid/ccppbrasil/CABoUv5Si56RBjJhhYBp1%3DCfZae6AdV_E%3DNwFMAXUgDm%2B5ZXssw%40mail.gmail.com.
Para ver esta conversa, acesse https://groups.google.com/d/msgid/ccppbrasil/CAEX1xDW%2B_SNNbOCF7kQTO4yuBnVfvxbfjBsP66zGDoHLU2v%3D-Q%40mail.gmail.com.