Masha00317
21.09.2022 20:59

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

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

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

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

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

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

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


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

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
asino20145
16.03.2022 23:10
Дешифровка: ВХОД_ОТКР Ы Т.

дешифровки:
Const sh = '_.,';
Var
  St : String;
  i  : Integer;
Function DeCode(S : String; Tabl : String; k : Integer) : String;
Var j,n : Integer;
Begin
  For j:=1 to Length(S) do
  Begin
    n:=Pos(S[j],sh);
    If n>0 then
    Begin
      n:=n+k;
      While n>Length(sh) do n:=n-Length(sh);
      While n<=0 do n:=n+Length(sh);
      S[j]:=sh[n];
    end
  end;
  DeCode:=S;
end;
Begin
  St:='ЗЫФЙГФШРЦ . ШД';
  Writeln(Decode(St,sh,-6));
  //For i:=-10 to 10 do Writeln(Decode(St,sh,i));
end.
0,0(0 оценок)
Ответ:
инкар03
14.01.2020 21:45
Расстояние от точки до начала координат находится как длина гипотенузы прямоугольного треугольника, катетами которого являются координаты точки. Поскольку нам нужны не сами расстояния, а лишь сравнить их, то можно сравнивать квадраты, чтобы не извлекать корня.r_i^2=x_i^2+y_i^2

// PascalABC.NET 3.0, сборка 1088
var
  x1,x2,y1,y2,r1,r2:real;
begin
  Write('Введите координаты первой точки: '); Read(x1,y1);
  Write('Введите координаты второй точки: '); Read(x2,y2);
  r1:=sqr(x1)+sqr(y1); r2:=sqr(x2)+sqr(y2);
  if r1>r2 then Writeln('Ближе вторая точка')
  else
    if r1<r2 then Writeln('Ближе первая точка')
    else Writeln('Точки равноудалены')
end.

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