Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #def fun(a):
- # 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')
- def f(a):
- 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')
- if c==0:
- return True
- else:
- return False
- def next_permutation(a):
- '''
- Функция генерирует в переменной a следующую перестановку
- :param a: Текущая перестановка
- :return: True, если в a сгенерирована следующая перестановка и False, если a - наибольшая.
- '''
- if len(a) < 1:
- return False
- j = len(a) - 2
- # Находим максимальную убывающую подпоследовательность
- # с конца перестановки a
- while (j >= 0) and (a[j] >= a[j+1]):
- j -= 1
- if j < 0:
- return False
- # Элемент, с которым необходимо менять j-й элемент
- l = len(a) - 1
- while (a[j] >= a[l]):
- l -= 1
- a[j], a[l] = a[l], a[j]
- k, l = j+1, len(a)-1
- # Преобразование хвоста в возрастающую подпоследовательность
- while (k < l):
- a[k], a[l] = a[l], a[k]
- k += 1
- l -= 1
- return a
- # заполнение массива
- l = []
- s = input()
- for i in range(len(s)):
- d = s[i]
- if d != '=' and d != '+':
- if d not in l:
- l.append(d)
- # дополнение массива
- l2 = [1,2,3,4,5]
- i = 0
- while len(l) < 10:
- l.append(str(l2[i]))
- i += 1
- l.sort()
- # действия с перестановками
- while not(f(l)):
- l=next_permutation(l)
- h=''
- for i in l:
- if i in s:
- h+=(' '+str(i)+' '+str(l.index(i)))
- print(h)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement