Skip to content

Instantly share code, notes, and snippets.

@IuryAlves
Last active August 29, 2015 14:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save IuryAlves/806f26b521d10a537629 to your computer and use it in GitHub Desktop.
Save IuryAlves/806f26b521d10a537629 to your computer and use it in GitHub Desktop.
# coding: utf-8
"""
Participantes:
Zorak, Iury, Lucas Rogério, Willian, Lucas Campos, Bruno Henrique, Elias, Rafael, Bustalover, Jhonny, Plinio
"""
import unittest
def mic(mictorios):
l = [0]* len(mictorios)
soma = list(mictorios)
def _verifica(valor1, valor2, valor3 = 0):
return not valor1 + valor2 + valor3
def _atualiza (index):
l[index], soma[index] = 1, 1
for i , element in enumerate(mictorios):
if i == len(mictorios) -1:
if _verifica(soma[i-1],soma[i]):
_atualiza(i)
elif i == 0:
if _verifica(soma[i+1], soma[i]):
_atualiza(i)
else:
if _verifica(soma[i+1], soma[i], soma[i-1]):
_atualiza(i)
return l
class Test(unittest.TestCase):
def test_1(self):
self.assertEqual(mic([0, 0, 0]), [1, 0, 1])
def test_2(self):
self.assertEqual(mic([0, 1, 0]), [0, 0, 0])
def test_3(self):
self.assertEqual(mic([1, 0, 0]), [0, 0, 1])
def test_4(self):
self.assertEqual(mic([1, 0, 0, 1]), [0, 0, 0, 0])
def test_5(self):
self.assertEqual(mic([1, 1, 0, 0, 1]), [0, 0, 0, 0, 0])
def test_6(self):
self.assertEqual(mic([1, 1, 1]), [0, 0, 0])
def test_7(self):
self.assertEqual(mic([1, 0, 0, 0, 0, 1, 0]), [0, 0, 1, 0, 0, 0, 0])
def test_8(self):
self.assertEqual(mic([0]), [1])
def test_9(self):
self.assertEqual(mic([1]), [0])
def test_10(self):
self.assertEqual(mic([1, 0]), [0, 0])
def test_11(self):
self.assertEqual(mic([0, 1]), [0, 0])
def test_12(self):
self.assertEqual(mic([0, 0]), [1, 0])
def test_13(self):
self.assertEqual(mic([0, 0, 1]), [1, 0, 0])
if __name__ == '__main__':
unittest.main()
Distribuição de Mictórios
Um problema enfrentado pelos homens no uso de mictórios em banheiros públicos é o constrangimento causado por outro homem urinando no mictório ao lado. Uma situação contrangedora é definida quando dois "mijões" deveriam ocupar mictórios adjacentes.
Dada uma quantidade de mictórios em um banheiro e a ocupação inicial deles (informando em qual deles já existe um "mijão"), determine quantos "mijões" ainda podem usar os mictórios e qual a posição deles antes para que não ocorra uma situação constrangedora.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment