Advertisement
Milov

буквометик

Dec 16th, 2017
288
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.97 KB | None | 0 0
  1. #def fun(a):
  2. #    c = 19910 * a.index('E')+1100 * a.index('L')+100 * a.index('V') + 10 * a.index('I') -9000 * a.index('S')+99990*a.index('R')+a.index('Y')-100000*a.index('O')
  3.  
  4. def f(a):
  5.     c = 999*a.index('S')+210*a.index('O')+10*a.index('M')+1000*a.index('G')-10000*a.index('I')-999*a.index('D')-99*a.index('E')-10*a.index('A')
  6.     if c==0:
  7.         return True
  8.     else:
  9.         return False
  10.  
  11. def next_permutation(a):
  12.     '''
  13.    Функция генерирует в переменной a следующую перестановку
  14.    :param a: Текущая перестановка
  15.    :return: True, если в a сгенерирована следующая перестановка и False, если a - наибольшая.
  16.    '''
  17.     if len(a) < 1:
  18.         return False
  19.     j = len(a) - 2
  20.     # Находим максимальную убывающую подпоследовательность
  21.     # с конца перестановки a
  22.     while (j >= 0) and (a[j] >= a[j+1]):
  23.         j -= 1
  24.     if j < 0:
  25.         return False
  26.     # Элемент, с которым необходимо менять j-й элемент
  27.     l = len(a) - 1
  28.     while (a[j] >= a[l]):
  29.         l -= 1
  30.     a[j], a[l] = a[l], a[j]
  31.     k, l = j+1, len(a)-1
  32.     # Преобразование хвоста в возрастающую подпоследовательность
  33.     while (k < l):
  34.         a[k], a[l] = a[l], a[k]
  35.         k += 1
  36.         l -= 1
  37.     return a
  38.  
  39.  
  40. # заполнение массива
  41. l = []
  42. s = input()
  43. for i in range(len(s)):
  44.     d = s[i]
  45.     if d != '=' and d != '+':
  46.         if d not in l:
  47.             l.append(d)
  48.  
  49. # дополнение массива
  50. l2 = [1,2,3,4,5]
  51. i = 0
  52. while len(l) < 10:
  53.     l.append(str(l2[i]))
  54.     i += 1
  55. l.sort()
  56.  
  57. # действия с перестановками
  58. while not(f(l)):
  59.     l=next_permutation(l)
  60.  
  61.  
  62. h=''
  63. for i in l:
  64.     if i in s:
  65.         h+=(' '+str(i)+' '+str(l.index(i)))
  66. print(h)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement