#!/usr/bin/env python3
'''
Тип 8 № 17328
Герасим составляет 7-буквенные коды из букв Г, Е, Р, А, С, И, М.
Каждую букву нужно использовать ровно 1 раз, при этом нельзя ставить подряд две
гласные или две согласные. Сколько различных кодов может составить Герасим?
'''
def ege_8_17328():
print("ege_8_17328")
x = ['g', 'e', 'r', 'a', 's', 'i', 'm']
y = [1, 0, 1, 0, 1, 0, 1]
def cb(s, b):
c = 0
for i in range(len(s)):
if(s[i] == b): c += 1
return c
def eq(b, x, y):
for i in range(len(x)):
if(x[i] == b): return y[i]
return 0
def gs(s, x, y):
r = []
for i in range(len(s)):
r.append(eq(s[i], x, y))
return r
def corr(r):
p = r[0]
for i in range(1, len(r)):
if(p == r[i]): return 0
p = r[i]
return 1
count = 0
for a in x:
for b in x:
for c in x:
for d in x:
for e in x:
for f in x:
for g in x:
s = a + b + c + d + e + f + g
#print(s)
if(cb(s, 'a') > 1): continue
if(cb(s, 'b') > 1): continue
if(cb(s, 'c') > 1): continue
if(cb(s, 'd') > 1): continue
if(cb(s, 'e') > 1): continue
if(cb(s, 'f') > 1): continue
if(cb(s, 'g') > 1): continue
r = gs(s, x, y)
cr = corr(r)
print("%s = %s / %d" % (s, r, cr))
if(cr > 0): count += 1
print("ege_8_17328 count= %d" % count)
pass
'''
Тип 8 № 26953
Найдите количество пятизначных восьмеричных чисел, в которых все цифры различны
и никакие две четные или нечетные не стоят рядом.
'''
def ege_8_26953():
print("ege_8_26953")
x = [0, 1, 2, 3, 4, 5, 6, 7]
count = 0
for a in x:
for b in x:
for c in x:
for d in x:
for e in x:
v = [a, b, c, d, e]
ok = 1
for i in range(5):
for j in range(5):
if(i == j): continue
if(v[i] == v[j]): ok = 0
if(ok < 1): continue
r = []
for i in range(5):
r.append(v[i] & 0x01)
ok = 1
p = r[0]
for i in range(1, 5):
if(p == [r[i]]): ok = 0
p = r[i]
print("%s = %s / %d" % (v, r, ok))
if(ok > 0): count += 1
print("ege_8_26953 count= %d" % count)
pass
'''
Тип 8 № 26982
Сколько существует шестизначных чисел, делящихся на 5, в которых каждая цифра
может встречаться только один раз, при этом никакие две чётные и две нечётные
цифры не стоят рядом.
'''
def ege_8_26982():
print("ege_8_26982")
pass
#ege_8_17328()
ege_8_26953()
#ege_8_26982()