Мы рады летним теплым дням – а вы? понежиться под знойным солнышком, поплескаться в освежающей морской воде, почитать книжку, поиграть в пляжный звучит здорово, правда? но что делать, если вам наскучили все эти занятия? от скуки феодосий начал строить песочные куличики. строить куличики он начал от береговой линии, продвигаясь вглубь пляжа. феодосий решил нумеровать куличики в порядке постройки, начиная с нуля. так, нулевой куличик стоял у самой воды, первый – чуть дальше от моря, второй – ещё дальше и так далее.
феодосий считает, что куличик получился удачным, если его высота не меньше x. высоту i-го куличика он описывал целым неотрицательным числом hi.
мальчик уже слепил n куличиков. и тут оказалось, что он не учёл, что уровень воды в море может измениться даже за короткий промежуток времени. прилив размывал один песочный куличик за другим в том порядке, в котором они были построены.
теперь, продолжая строить куличики, феодосий придумал себе следующее занятие: в некоторые моменты времени он выбирает один куличик и считает, сколько удачных куличиков осталось перед ним. это занятие уже показалось ему интересным, и он решил придумать, как можно автоматизировать подсчёты. так как сам феодосий силён в построении куличиков, а не в программировании, поэтому в решении этой он попросил у вас.
входные данные
в первой строке входного файла даны два числа: n – начальное количество построенных куличиков (1≤n≤106) и x – нижняя граница высоты удачного куличика (0≤x≤109).
в следующей строке даны n чисел hi – высота i-го куличика (0≤hi≤109).
в третьей строке входного файла дано число m (1≤m≤105) – количество событий, которые происходили с рядом куличиков.
в следующих m строках дано описание событий:
1 h (0≤h≤109) – феодосий строит новый куличик высоты h.
2 – вода разрушает самый ближний к морю куличик, который в нумерации феодосия имеет номер 0. после этого феодосий мысленно уменьшает номера всех куличиков на 1.
3 i – феодосий хочет узнать, сколько удачных куличиков осталось между куличиком с номером i и линией моря.
гарантируется, что все запросы корректны: если на берегу нет ни одного куличика, то операция второго типа не выполняется, а при запросе третьего типа количество куличиков всегда будет строго больше i.
выходные данные
на каждый запрос третьего типа в отдельной строке выведите одно число – количество удачных куличиков, которые стоят перед куличиком с данным номером.
примеры
входные данные
1 2
3
5
1 2
1 1
3 0
3 1
3 2
выходные данные
0
1
2
входные данные
2 2
1 2
7
3 0
3 1
2
3 0
1 3
3 0
3 1
выходные данные
0
0
0
0
1
Формула Бине:
При работе с типом double имеет место быть некоторая погрешность. При больших числах относительная погрешность стремится к 0.
Код:
#include <iostream>#include <cmath>#define sqrt5 sqrt(5)#define (1 + sqrt5)/2#define n (1 - sqrt5)/2long long fibBinet(int n) { return (long long) round((pow(, n) - pow(n, n)) / sqrt5);}int main() { long long binet77 = fibBinet(77); std::cout << "fibBinet(77) = " << binet77 << " (5527939700884757)" << std::endl; std::cout << "A = " << abs(5527939700884757ll - binet77) << std::endl; std::cout << "B = " << 5527939700884757ll / binet77 << std::endl; return 0;}В целях удовлетворения этих потребностей органы государственной власти и органы местного и регионального самоуправления создают информационные службы, системы, сети, базы и банки данных.
Порядок их создания, структура, права и обязанности определяются Кабинетом Министров Украины или другими органами государственной власти, а также органами местного и регионального самоуправления.