# Задание-1: уравнение прямой вида y = kx + b задано в виде строки.
# Определить координату y точки с заданной координатой x.

print ("\n### Задача-1.Hard")
equation = 'y = -12x + 11111140.2121'
x = 2.5
items = equation.split(' ')
#items[0] = 'y'
#items[1] = '='
#items[2] = '-12x'
#items[3] = '+'
#items[4] = 11111140.2121

# вычислите и выведите y

y = float((items[2])[:-1]) * x + float(items[4])
print(f"y= {y}")
print(f"y= {-12*x + 11111140.2121 }")

# Задание-2: Дата задана в виде строки формата 'dd.mm.yyyy'.
# Проверить, корректно ли введена дата.
# Условия корректности:
# 1. День должен приводиться к целому числу в диапазоне от 1 до 30(31)
#  (в зависимости от месяца, февраль не учитываем)
# 2. Месяц должен приводиться к целому числу в диапазоне от 1 до 12
# 3. Год должен приводиться к целому положительному числу в диапазоне от 1 до 9999
# 4. Длина исходной строки для частей должна быть в соответствии с форматом 
#  (т.е. 2 символа для дня, 2 - для месяца, 4 - для года)

# Пример корректной даты
date = '01.11.1985'

# Примеры некорректных дат
date = '01.22.1001'
date = '1.12.1001'
date = '-2.10.3001'

print ("\n### Задача-2.Hard")
date_str = '31.07.2019'
#выделить компоненты даты
date_list=date_str.split(".")

#преобразовать в текст
day = date_list[0]
month = date_list[1]
year =date_list[2]
month_long = {1, 3, 5, 7, 8, 10, 12}

day_valid = False
month_valid = False
year_valid = False


#проверка месяца
if (month.isdigit() and len(month) == 2 and int(month)>=1 and int(month) <= 12):
    month_valid = True

if (day.isdigit() and len(day) == 2 and int(day) > 0 and int(day) <= 31):
    day_valid = True
    if (int(month) not in month_long) and int(day) > 30:
        day_valid = False

if (year.isdigit() and len(year) == 4 and int(year) > 1 and int(year) < 9999):
    year_valid = True

if (day_valid and month_valid and year_valid):
    print(f"Дата указана верно {date_str}")
elif not day_valid :
    print(f"Не верно указан день месяца: {day}")
elif not month_valid:
    print (f"Не верно указан месяц: {month}")
elif not year_valid:
    print (f"Год должен быть в диапазоне 0001-9999: {year}")


# Задание-3: "Перевёрнутая башня" (Задача олимпиадного уровня)
#
# Вавилонцы решили построить удивительную башню —
# расширяющуюся к верху и содержащую бесконечное число этажей и комнат.
# Она устроена следующим образом — на первом этаже одна комната,
# затем идет два этажа, на каждом из которых по две комнаты, 
# затем идёт три этажа, на каждом из которых по три комнаты и так далее:
#         ...
#     12  13  14
#     9   10  11
#     6   7   8
#       4   5
#       2   3
#         1
#
# Эту башню решили оборудовать лифтом --- и вот задача:
# нужно научиться по номеру комнаты определять,
# на каком этаже она находится и какая она по счету слева на этом этаже.
#
# Входные данные: В первой строчке задан номер комнаты N, 1 ≤ N ≤ 2 000 000 000.
#
# Выходные данные:  Два целых числа — номер этажа и порядковый номер слева на этаже.
#
# Пример:
# Вход: 13
# Выход: 6 2
#
# Вход: 11
# Выход: 5 3

n = 5
rooms = 1
