Двійковий пошук#3451

Двійковий пошук

1 секунда
64 мегабайти
Дуже складна

Двійковий пошук — це алгоритм, який використовується для пошуку заданого елементу у відсортованому масиві. Розглянемо наступний псевдокод двійкового пошуку ( позначає ділення націло):

вхід: a_0, a_1, \ldots, a_{n-1},

l = 0;

r = n;

while (l < r - 1) {

m = (l + r) / 2;

if (a_m \leq x)

l = m;

else

r = m;

}

if (a_l == x)

return true;

else

return false;

Іноді виявляється, що двійковий пошук знаходить входження деякого елемента в масиві навіть якщо масив не відсортовано. Вам задано число . Потрібно знайти кількість пар , де представляє собою масив довжини , який містить цілі числа від до , а — ціле число від до , таких, що наведена процедура повертає true, якщо її запустити на масиві та числі у якості аргументів.

Вхідні дані

Вхідний файл містить одне ціле число (1 \leq n \leq 1000).

Вихідні дані

Виведіть одне ціле число — відповідь на поставлену задачу.

Приклади

Приклад 1

Loading
Loading