Евгений насколько усердно боролся с компьютерным вирусом, что сам заболел, и, поскольку он не мог оставить работу, Евгений заразил всех своих коллег, которые заразили своих знакомых и так далее. В итоге весь ваш город оказался заражён. На фоне этой эпидемии власти ввели масочный режим, а в ваш любимый кинотеатр «Малина» теперь пускают только по электронному сертификату о прививке.
Сегодня вы решили сходить в ваш любимый кинотеатр. Подойдя ко входу в здание кинотеатра, вы встали в очередь, в которой вместе с вами находятся п человек. В начале очереди у посетителей проверяют наличие сертификата о прививке. Подтверждение сертификата каждого посетителя занимает q секунд, после чего человек отправляется в зал на показ фильма. Как и всегда, у входа в зал собралась очередь из m человек с билетами, которые предстоит проверить контролёру. Проверка билета одного человека занимает t секунд, после чего человек сразу же занимает место в кинозале.
Перерыв в кинотеатре закончится с минуты на минуту, после чего очереди двинутся, и в скором времени вы сможете посмотреть фильм. Но вас, как настоящего программиста, интересуют точные значения. Поэтому, пока перерыв не закончился, вам предлагается написать программу, которая по заданным значениям n, q, m и t посчитает, сколько секунд вам придется подождать после окончания перерыва, прежде чем вы окажетесь в кинозале.
1 Ответ
Ответ: Решаем двумя способами.
C++:
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int main() {
ll n, q, m, t; cin >> n >> q >> m >> t;
if (t >= q) {
cout << (n + m) * t << «\n»;
return 0;
}
ll turn = (m * t + q — t — 1) / (q — t);
if (turn < n) {
cout << (n — 1) * q + t << «\n»;
} else {
cout << (m + n) * t << «\n»;
}
}
Python:
def main():
n = int(input())
q = int(input())
m = int(input())
t = int(input())
if t >= q:
print((n + m) * t)
return
turn = (m * t + q — t — 1) // (q — t)
if turn < n:
print((n — 1) * q + t)
else:
print((m + n) * t)
main()