Платные музыкальные сервисы предлагают самый разный контент за любые деньги, но работают по одному и тому же принципу: за первый месяц подписки клиент платит a рублей, далее за каждый следующий месяц подписки — ещё d рублей. Таким образом, за n месяцев клиент заплатит a+(n−1)⋅d рублей. Известно, что для любых натуральных a и d существует ровно один сервис, который предлагает свои услуги именно на таких условиях.
У Тимофея есть m рублей, и ему требуется подключить ровно один сервис. Он хочет выяснить, на скольких из них он может получать за эти деньги доступ к музыке в течение n месяцев. Если денег хватит на количество месяцев, превышающее n, Тимофея такой сервис тоже устроит.
Формат входных данных
На вход подаются два натуральных числа n (2≤n≤106) и m (1≤m≤106), каждое в своей строке.
Обратите внимание, что при заданных ограничениях для хранения ответа может понадобиться 64‑битный тип данных, например, long long в C++, int64 в Pascal, long в Java.
Формат выходных данных
Выведите одно неотрицательное целое число — количество различных сервисов, на которых Тимофей может n месяцев получать доступ к музыке, заплатив при этом не более m рублей.
Замечание
В примере из условия у Тимофея есть 7 рублей, и он хочет слушать музыку 3 месяца. Тогда ему подойдут следующие сервисы:
a=1, d=1 (он заплатит в сумме 1+2⋅1=3 рубля);
a=2, d=1 (он заплатит в сумме 2+2⋅1=4 рубля);
a=3, d=1 (он заплатит в сумме 3+2⋅1=5 рублей);
a=4, d=1 (он заплатит в сумме 4+2⋅1=6 рублей);
a=5, d=1 (он заплатит в сумме 5+2⋅1=7 рублей);
a=1, d=2 (он заплатит в сумме 1+2⋅2=5 рублей);
a=2, d=2 (он заплатит в сумме 2+2⋅2=6 рублей);
a=3, d=2 (он заплатит в сумме 3+2⋅2=7 рублей);
a=1, d=3 (он заплатит в сумме 1+2⋅3=7 рублей).
Таким образом, для данного примера у Тимофея есть возможность выбора из 9 музыкальных сервисов.
2 Ответы
Ответ:
n = int(input())
m = int(input())
ans = (2 * (m — n + 1) — (n + m // (m + n) — 1) * (((m — 1) * ((n + 1) // n) // (n — 1)) — 1)) * ((m — 1) // (n — 1)) // 2
print(<span class=»hljs-name»>ans</span>)