0050. Плата за место

Имя входного файла: input.txt
Имя выходного файла: output.txt
Ограничение по времени: 1 s
Ограничение по памяти: 64 megabytes

Некоторое политическое движение составляет избирательный список, в котором зарезервировано n мест. В список может быть включен любой желающий, который согласен выполнить следующие условия:

  1. Если претендент хочет быть включен на место списка, то он должен дождаться, пока не будут заняты места.
  2. За место он должен заплатить определенную сумму , измеряемую в условных единицах (у. е.) и являющуюся целым числом.
  3. Если он не кандидат на первое место списка, то эта сумма должна быть строго больше, нежели взнос, внесенный претендентом.
  4. В любом случае сумма должна быть не меньше, чем у.е.
Условия 3 и 4 можно в общих словах охарактеризовать как штраф за промедление.

Лидеру движения пришло в голову подсчитать, сколько же всего существует различных вариантов уплаты от n кандидатов, если бы претендент на последнее место заплатил не более M у. е.

Формат входного файла

Входной файл содержит в первой строке два целых числа, отделенных пробелом. Первое число ≈ это значение n (число мест в списке, ), второе ≈ M (верхняя граница для суммы, которую заплатил претендент на последнее место в списке, 2n ≤ M ≤ 200 ).

Формат выходного файла

Выходной файл должен содержать число различных вариантов уплаты, которые могли бы возникнуть при описанных выше условиях.

Пример:

input.txtoutput.txt
3 6 5


Источник: Petrozavodsk training camp, Summer 2002. Magloy's contest :-)
Автор: Magloy (Alexander Korol, Denis Vlasov, Roman Soshkin)

Обсудить       Отправить решение



Версия для печати