В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
rrr46
rrr46
03.10.2022 02:42 •  Информатика

решить Задача №1705. Долины и холмы
Рассмотрим числовую последовательность a1, ..., aN. Мы будем называть подстроку ai, …, aj, ..., ak (1 ≤ i < j < k ≤ N) исходной последовательности холмом, если at < at+1 для любого i ≤ t < j и at > a t+1 для любого j ≤ t < k. В таком случае вершиной холма считается min{j − i, k − j} . Аналогично, мы будем называть подстроку долиной, если at > at+1 для любого i ≤ t < j и at < at+1 для любого j ≤ t < k. Тогда глубиной долины будет считаться min{j-i, k-j}. Вычислите высоту самого высокого холма и глубину самой глубокой долины в данной последовательности.

Входные данные
В первой строке входного файла находится число T (1 ≤ T ≤ 100000) — количество тестовых блоков. Далее располагаются тестовые блоки, занимающие по 2 строки. Первая из двух строк содержит целое число N (1 ≤ N ≤ 1000000), во второй строке находятся члены последовательности, разделенные пробелом. Сумма значений N всех тестовых блоков в файле не превышает 100 000. Абсолютные значения членов последовательности не превышают 1 000 000.

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

Примеры
входные данные
2
10
4 4 1 6 3 2 1 2 5 7
10
2 3 4 5 6 7 8 9 10 9
выходные данные
1 3
1 0
На питоне

Показать ответ
Ответ:
Amid05
Amid05
20.08.2021 23:20
В задании не сказано, откуда берутся исходные данные, поэтому будем вводить их с клавиатуры. Сначала ведем общее количество данных (не факт, что данные за месяц снимались строго ежедневно), а затем сами данные. Это позволит заодно осуществить контроль ввода.

var
  n,s,t,i:integer;
begin
  Write('Укажите количество данных: ');
  Read(n);
  Writeln('Теперь вводите данные');
  s:=0;
  for i:=1 to n do
    begin
    Read(t);
    s:=s+t
    end;
  Writeln('Средняя температура за месяц составила ',s/n:0:1)
end.

Пример решения

Укажите количество данных: 11
Теперь вводите данные
27 29 26 31 24 23 27 30 31 28 25
Средняя температура за месяц составила 27.4
0,0(0 оценок)
Ответ:
Мышонок11111
Мышонок11111
20.07.2022 14:20
Код#include <iostream>constexpr double bites_to_megabytes(double a) {    return a / 8388608;}constexpr double megabytes_to_gigabytes(double a) {    return a / 1024;}int main() {    long long a;    short type;    bool is_correct = false;    double answer;    do {        std::cin >> a;        std::cout << "[1] Megabytes \n"                  << "[2] Gigabytes \n"                  << "Convert to [1] or [2]: ";        std::cin >> type;        if (type == 1 or type == 2) {            is_correct = true;        } else {            std::cout << "Meh. Try to type again. \n" << std:: endl;        }    } while (!is_correct);    switch (type) {        case 1:            answer = bites_to_megabytes(a);            break;        case 2:            answer = megabytes_to_gigabytes(bites_to_megabytes(a));            break;    }    std::cout << "An answer of conversion is " << answer << std::endl;    return 0;}
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота