hola174
30.03.2020 00:44

Лягушонок Билли сидел на камне и любовался на закат, когда понял, что проголодался. Он огляделся и с удивлением обнаружил, что в ручье около него копошатся мошки. Ручей представляет собой прямую, на которой расположен и камень, на котором сидит Билли. Лягушонок был очень голоден, и потому захотел съесть всех мошек. У Билли очень длинный язык, поэтому он может, не спрыгивая с камня, съесть любую мошку (но только одну за раз). Однако высовывать язык на большие расстояния не так-то просто, лягушонок на каждый сантиметр высунутого языка тратит одну единицу энергии. Каждый раз, когда Билли съедает мошку из какой-то точки происходит следующее: все мошки, сидящие слева от съеденной мошки, и все мошки, сидящие справа от нее в ужасе отпрыгивают от места событий на один сантиметр вдоль ручья. Мошки, которые сидят в той же точке, что и съеденная, настолько шокированы этим событием, что не двигаются.

Вы используете гостевой доступ (Вход)
Эврика: Задачи турнира 2018 г.
В начало
Курсы
Кружки и уроки
Камчатский край
Эврика
Тема 35
Задачи турнира 2018 г.
Задача №113668. Лягушонок Билли
Лягушонок Билли сидел на камне и любовался на закат, когда понял, что проголодался. Он огляделся и с удивлением обнаружил, что в ручье около него копошатся мошки. Ручей представляет собой прямую, на которой расположен и камень, на котором сидит Билли. Лягушонок был очень голоден, и потому захотел съесть всех мошек. У Билли очень длинный язык, поэтому он может, не спрыгивая с камня, съесть любую мошку (но только одну за раз).

Однако высовывать язык на большие расстояния не так-то просто, лягушонок на каждый сантиметр высунутого языка тратит одну единицу энергии. Каждый раз, когда Билли съедает мошку из какой-то точки происходит следующее: все мошки, сидящие слева от съеденной мошки, и все мошки, сидящие справа от нее в ужасе отпрыгивают от места событий на один сантиметр вдоль ручья. Мошки, которые сидят в той же точке, что и съеденная, настолько шокированы этим событием, что не двигаются.

Если мошка в какой-то момент времени прыгает на камень, где сидит Билли, то Билли тут же съедает ее не тратя энергии. При этом другие мошки не перемещаются.
Лягушонок Билли хочет понять — какое минимальное количество единиц энергии ему потребуется для того, чтобы съесть всех мошек ему это выяснить.

Входные данные
В первой строке входного файла задано одно натуральное числа n (1≤n≤100000) — количество мошек. Во второй строке входного файла задано n натуральных чисел — расстояния каждой из мошек до камня. Известно, что все мошки находятся на одной прямой по одну сторону от камня. Расстояния даны в порядке неубывания. Расстояния не превышают 109 .

Выходные данные
Выведите одно число — минимальное количество единиц энергии, которое потребуется Билли, чтобы съесть всех мошек.

Пояснение к примеру
Сначала Билли съест одну мошку, сидящую в точке 4. Другая мошка, сидящая в этой точке не сдвинется, обе мошки из точки 2 сдвинутся в точку 1. После того, как он съест вторую мошку в точке 4, обе мошки из точки 1 отпрыгнут в точку 0, где и будут сразу съедены.


Лягушонок Билли сидел на камне и любовался на закат, когда понял, что проголодался. Он огляделся и с
Лягушонок Билли сидел на камне и любовался на закат, когда понял, что проголодался. Он огляделся и с

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
любимчик27
08.06.2022 15:04
#include <iostream>
#include <Time.h>
using namespace std;

int main()
{
    int n, i, k;

    cout << "Kolichestvo chisel = ";
    cin >> n;

    srand(time(0));
    int *a = new int[n];

    for (int i = 0; i < n; i++)
    {
        a[i] = rand() % 56 - 10;
        cout << a[i] << " ";
    }
    int min = a[0];

    for (i = 0; i<n; i++)
    if (min>a[i]) {
        min = a[i];
        k = i;
    }

    cout << endl << endl;
    cout << "Min = " << min << endl << "i = " << k << endl;

    system("pause");
    return 0;
}
0,0(0 оценок)
Ответ:
boldarev2001
08.06.2022 15:04

готово

Объяснение:

1)

program minimum;

var

 i, n, k: integer;

 min: real;

 A: array of real;

begin

 Write('Введите размер массива: ');

 ReadLn(n);

 SetLength(A, n);

 for i := 0 to n - 1 do

 begin

   Write('Введите A[',i,']=');

   ReadLn(A[i]);

 end;

 min := A[0];

 for i := 1 to n - 1 do

 if A[i] < min then

   begin

     min := A[i];

     k := i;

   end;

 WriteLn('Минимальный элемент - A[',k,'] = ', min);

end.

2)

program summa;

var

 i, t, sum: integer;

 A: array of integer;

begin

 Write('Введите размер массива: ');

 ReadLn(t);

 SetLength(A, t);

 for i := 0 to t - 1 do

 begin

   A[i] := round(random(120) - 60);

   WriteLn('A[', i, '] = ', A[i]);

   if A[i] > 20 then sum := sum + a[i];

 end;

 WriteLn('Сумма чисел, больших 20 = ', sum);

end.

3)

program massiv;

var

 i, k: integer;

 A: array[0..13] of integer;

begin

 for i := 0 to 13 do

 begin

   A[i] := round(random(27) + 3);

   WriteLn('A[', i, '] = ', A[i]);

   if A[i] > 13 then k := k + 1;

 end;

 WriteLn('Количество чисел, больших 13 равно ', k);

end.

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота