Эффективные ветрогенераторы Альтернативные источники энергии становятся крайне популярными в последнее время. Например, сети из ветрогенераторов являются довольно эффективными и, при этом, не загрязняют окружающую среду.
Ваша сеть состоит из n ветрогенераторов. Ветрогенераторы с чётными номерами (то есть с номерами 2, 4, 6...) являются высокоэффективными. Они производят одну единицу энергии и во время сильного, и во время слабого ветра. А ветрогенераторы с нечётными номерами (то есть с номерами 1, 3, 5...) являются низкоэффективными и производить единицу энергии только во время сильного ветра.
Вам дана история ветров, состоящая из m событий. Каждое событие можно описать тремя числами: l, r, k. Это означает, что ветер дул на ветрогенераторы с номерами от l до r включительно. Причём, k=1 означает, что ветер был сильным, а k=2 означает, что ветер был слабым.
Чтобы оценить эффективность сети, требуется написать программу, сколько энергии в среднем вырабатывал один ветрогенератор за всю историю наблюдений за ветром
Гарантируется, что ответ является целым числом.
Входные данные
В первой строке содержатся числа n, m (1⩽n,m⩽105)- количество ветрогенераторов в сети и количество событий.
В следующих m строках содержится описание событий по одному в строке. Каждая строка содержит числа l, r, k (1⩽l⩽r⩽n,1⩽k⩽2).
Выходные данные
Выведите единственное число − среднее количество энергии, выработанное ветрогенератором.
Система оценки
Решения, работающие правильно при n,m≤1000, будут набирать не менее
Решения, работающие правильно при k=1, будут набирать не менее
Пример
входные данные
5 3
1 5 1
1 3 2
2 5 1
выходные данные
2
Примечание
В примере после первого события все пять ветрогенераторов выработают по единице энергии. После второго события только ветрогенератор с номером 2 выработает единицу энергии. После третьего события ветрогенераторы с номерами от 2 до 5 выработают по единице энергии.
Компьютер, как и говорится в его названии (computer - вычислитель) служит для автоматизации процессов вычисления и обработки информации (которую можно, как оказалось, представлять количественно, в виде цифр).
Это позволяет автоматизировать большое количество рутинной работы, которая раньше выполнялась вручную.
Например, можно не тратить бумажки для хранения данных, а использовать базу данных, ускоряя доступ к данным посредством математических свойств данных.
Или не считать вручную выручку за квартал на предприятии, а использовать MS Excel для автоматических расчетов. Тот же Excel позволяет сразу вместе с расчетами полученные данные оформить в виде документа и отправить "на стол" начальству, а не идти из одного офиса в другой.
Помимо офисной работы автоматизируется также процесс производства. Начиная от черчения чертежей в Autocad (а не вручную, как раньше) и заканчивая полностью или наполовину автоматизированным производством деталей, посредством разработки встраиваемых систем или написания пакета программ для автоматизации.
Или сопровождение процесса работы. Например, расчет давления в подводящих трубах во избежание взрыва основной трубы. (Делается посредством решения огромной системы линейных уравнений с огромной разрежанной матрицей).
В целом, потенциал развития и применения компьютерных технологий огромен.
Формула Бине:
При работе с типом 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;}