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

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

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

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

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

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

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

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


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

Показать ответ
Ответ:
Okama
Okama
01.07.2022 19:24

#include <iostream>

using namespace std;

int main()

{

  int a;

  cin >> a;

  int mas[a][a];

  for(int i = 0; i<a; i++){

      for(int g = 0; g<a; g++){

          int t;

          cin >> t;

          mas[i][g] = t;

      }

  }

  for(int i = 0; i<a; i++){

      swap(mas[i][i] , mas[a-i-1][i]);

  }

  for(int i = 0; i<a; i++){

      for(int g = 0; g<a; g++){

          cout << mas[i][g] << ' ';

      }

      cout << endl;

  }

}

Объяснение:

0,0(0 оценок)
Ответ:
syltan502
syltan502
10.04.2020 06:55

Мы ищем максимальное число, кратное 3. Но в данной программе нет проверки на максимальное число.

Если мы введём кратные числа трём в таком порядке: 24,9,3,

то мы получим ответ 3. Но оно не будет максимальным кратным, т.к 24 должно быть максимальным.

Внёс изменения в программу, добавив переменную max, которая не использовалась.

var n,k,max:integer;

begin

 k := 0;

 repeat

write('Введите числа: ');

readln(n);

if (n mod 3=0) and (n>max) then

 k := n;

 max:=n

 until n=0;

 writeln('Максимальное число кратное 3: ', k);

end.

n - вводимые числа, которые проверяются на кратность 3.

k - переменная, в которую записывается число n, которое кратное 3.

max - записывает в себя максимальное число, кратное трём. В дальнейшем, чтоб цикл не допускал кратные числа n, которые меньше max.

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