Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Прямые и окружности Ограничение по времени: 1 секунда Ограничение по памяти: 256 мегабайт

Окончив чертёж и подписав все цифры,
Александров со спокойной отчетливостью
назвал все линии и все размеры, спрятал
мелок в карман и по‑строевому вытянулся,
глядя в холодные глаза полковника.
Александр Куприн, «Юнкера».
Дополнительное задание, полученное Алексеем от строгого учителя, было следующим: требовалось выбрать на плоскости точку и провести через неё n
различных прямых. После этого нужно было построить m
различных окружностей с центром в отмеченной точке. На сколько частей все линии делят плоскость?

Формат входных данных
Две строки входных данных содержат два неотрицательных целых числа n
и m
(0 ≤ n , m ≤ 10^8 ).
Формат выходных данных
Выведите одно натуральное число —
ответ на вопрос задачи.
Обратите внимание, что при заданных ограничениях для хранения ответа необходимо использовать 64
‑битный тип данных, например, long long в C++, int64
в Free Pascal, long в Java.

Система оценки
Решения, правильно работающие при n=0 , будут оцениваться в 20
баллов.
Решения, правильно работающие при m=0 , будут оцениваться в 20
баллов.

Замечание
В первом примере ни одной линии не проведено, плоскость на части не разделилась.
Во втором примере проведено две прямые и три окружности. Плоскость разделилась на 16
частей, как показано на рисунке.

По дате
По рейтингу
Аватар пользователя

n = int(input())
m = int(input())
x = m + 1
y = 2 * n * (m + 1)
ans = int((x + y) / 2 + abs(x - y) / 2)
print(ans)

Аватар пользователя
Знаток

Предлагаю своё решение:
n=int(input())
m=int(input())
print((n*2)*(m+1))
if n==2 and m!=1:
print(m) (print пиши с отступами, это: 5 отступов)
elif m==1 and n!=1:
print(n) (4 отступа)
elif n==2 and m==2:
print(1) (тоже 4 отступа)
У меня получилось так, получил 70 баллов.