fspassos

URI2287

Mar 21st, 2020
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.51 KB | None | 0 0
  1. senhaProvSemAjuste = []
  2. senhaProvAjustada = []
  3. qtComparacoes = int(input())
  4. nrTestes = 0
  5. senhasDefinitivas = []
  6.  
  7.  
  8. def pega_entradas(m):
  9.  
  10.     listacomparacoes = []
  11.  
  12.     while m > 0:
  13.  
  14.         listacomparacoes.append(input().split())
  15.  
  16.         m -= 1
  17.  
  18.     return listacomparacoes
  19.  
  20.  
  21. def monta_senha(listadeentrada, listaprov):
  22.     tempsenha = []
  23.  
  24.     for x in range(len(listadeentrada)):
  25.         numeros = []
  26.         letras = []
  27.  
  28.         for y in range(len(listadeentrada[x])):
  29.  
  30.             if listadeentrada[x][y].isnumeric():
  31.  
  32.                 numeros.append(listadeentrada[x][y])
  33.  
  34.             else:
  35.  
  36.                 letras.append(listadeentrada[x][y])
  37.  
  38.         for z in range(len(letras)):
  39.  
  40.             pos = []
  41.  
  42.             if letras[z].upper() == 'A':
  43.  
  44.                 pos = [int(numeros[0]), int(numeros[1])]
  45.  
  46.             elif letras[z].upper() == 'B':
  47.  
  48.                 pos = [int(numeros[2]), int(numeros[3])]
  49.  
  50.             elif letras[z].upper() == 'C':
  51.  
  52.                 pos = [int(numeros[4]), int(numeros[5])]
  53.  
  54.             elif letras[z].upper() == 'D':
  55.  
  56.                 pos = [int(numeros[6]), int(numeros[7])]
  57.  
  58.             elif letras[z].upper() == 'E':
  59.  
  60.                 pos = [int(numeros[8]), int(numeros[9])]
  61.  
  62.             tempsenha.append(pos)
  63.  
  64.     for t in tempsenha:
  65.  
  66.         listaprov.append(set(t))
  67.  
  68.  
  69. def organiza_senha(qtcasos, listasenhaprov, listasenhaajustada):
  70.  
  71.     for x in range(0, (len(listasenhaprov) // qtcasos)):
  72.  
  73.         tamanhosenha = (len(listasenhaprov) // qtcasos)
  74.         incremento = tamanhosenha
  75.         tt = {}
  76.  
  77.         for s in range(1, (len(listasenhaprov) // tamanhosenha)):
  78.  
  79.             if tt == {}:
  80.  
  81.                 tt = listasenhaprov[x] & listasenhaprov[x + incremento]
  82.                 incremento += tamanhosenha
  83.  
  84.             elif tt != {}:
  85.  
  86.                 tt = tt & listasenhaprov[x + incremento]
  87.  
  88.         listasenhaajustada.extend(tt)
  89.  
  90.  
  91. while qtComparacoes != 0:
  92.  
  93.     listaAjustadaFinal = []
  94.  
  95.     monta_senha(pega_entradas(qtComparacoes), senhaProvSemAjuste)
  96.     organiza_senha(qtComparacoes, senhaProvSemAjuste, senhaProvAjustada)
  97.  
  98.     for v in range(len(senhaProvAjustada)):
  99.  
  100.         listaAjustadaFinal.extend(str(senhaProvAjustada[v]))
  101.  
  102.     senhaProvAjustada.clear()
  103.     senhaProvSemAjuste.clear()
  104.     senhasDefinitivas.append(listaAjustadaFinal)
  105.  
  106.     qtComparacoes = int(input())
  107.  
  108. for f in senhasDefinitivas:
  109.     nrTestes += 1
  110.     print('Teste {}'.format(nrTestes))
  111.     print(*f, end=' ')
  112.     print()
  113.     print()
Advertisement
Add Comment
Please, Sign In to add comment