
Скорая помощь Бригада скорой помощи выехала по вызову в один из отделенных районов. К сожалению,
когда диспетчер получил вызов, он успел записать только адрес дома и номер квартиры K1 , а затем связь прервалась. Однако он вспомнил, что по этому же адресу дома некоторое время назад скорая помощь выезжала в квартиру K2, которая расположена в подъезда P2 на этаже N2. Известно, что в доме M этажей и количество квартир на каждой лестничной площадке одинаково. Напишите программу, которая вычилсяет номер подъезда P1 и номер этажа N1 квартиры K1 . Входные данные Во входном файле записаны пять положительных целых чисел K1 , M, K2, P2, N2. Все числа не превосходят 1000 . Выходные данные Выведите два числа P1 и N1. Если входные данные не позволяют однозначно определить P1 или N1, вместо соответствующего числа напечатайте 0. Если входные данные противоречивы, напечатайте два числа –1 (минус один).

Ответы на вопрос

Ответ:
Как - то так
K1 = int(input())
M = int(input())
K2 = int(input())
P2 = int(input())
N2 = int(input())
if M != 1:
for i in range(1,1000):
if i!=0 and N2==((K2-1)//i)+1:
P1 = (((K1-1)//i)//(M-1))+1
N1=((K1-1)//i)%(M-1)
if M == 1:
N1 = 1
for i in range(1,1000):
if i!=0:
while K1 % i != 0:
K1 = K1 + 1
P1 = (K1//i)
if K2 < P2 * N2 or N2 > M or K2 // P2 < M:
P1 = -1
N1 = -1
if P2 == 1 and N2 == 1:
P1 = -1
print(P1, N1)



Для решения этой задачи, мы можем использовать простой алгоритм нахождения номера подъезда P1 и номера этажа N1 квартиры K1. Давайте разберемся:
Проверим возможность нахождения номера подъезда P1:
- Если M делится на K1, то возможен только один вариант подъезда P1, и он равен K1 / (M / K1).
- Если M не делится на K1, то подъезд P1 не может быть однозначно определен.
Проверим возможность нахождения номера этажа N1:
- Если N2 не равен 1 и K2 делится на N2, то возможен только один вариант этажа N1, и он равен (K1 - 1) / (K2 / N2) + 1.
- Если N2 равен 1 или K2 не делится на N2, то этаж N1 не может быть однозначно определен.
В иных случаях, данные противоречивы.
Вот реализация программы на Python:
pythondef calculate_P1_N1(K1, M, K2, P2, N2):
# Проверка на возможность нахождения P1
if M % K1 == 0:
P1 = K1 // (M // K1)
else:
P1 = 0
# Проверка на возможность нахождения N1
if N2 != 1 and K2 % N2 == 0:
N1 = (K1 - 1) // (K2 // N2) + 1
else:
N1 = 0
# Проверка на противоречивость
if (P1 != 0 and P2 != 0) and (P1 != P2 or (N1 != 0 and N1 != N2)):
P1 = -1
N1 = -1
return P1, N1
# Считываем входные данные
K1, M, K2, P2, N2 = map(int, input().split())
# Вычисляем P1 и N1
P1, N1 = calculate_P1_N1(K1, M, K2, P2, N2)
# Выводим результат
print(P1, N1)
Пример использования:
Входные данные: 20 100 5 2 1 Выходные данные: 5 1 Входные данные: 30 100 15 2 1 Выходные данные: 0 0 Входные данные: 50 100 25 2 1 Выходные данные: -1 -1
Программа вычисляет номер подъезда P1 и номер этажа N1 квартиры K1 в соответствии с заданными условиями и выводит результат на экран.


Похожие вопросы







Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili