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

На трёх путях сортировочной станции стоят вагоны с абрикосами (А), бананами (Б) и вишней (В) так, как это показано на рисунке.

Машинист тепловоза (Т) может за один раз прицепить к тепловозу один или несколько вагонов с какого-нибудь пути, передвинуть их на правый путь, после чего передвинуть их на любой левый путь. Например, если тепловоз заберет 2 вагона с пути номер 3 на путь номер 1, то после такого действия распределение вагонов по путям будет таким.

А В Б А В
Б В А
Б
Соответствующую команду перемещения будем записывать так.

2 3 1
Что означает, что необходимо передвинуть 2 вагона с пути номер 3 на путь номер 1. Первое число обозначает количество перемещаемых вагонов, второе число – номер пути, с которого нужно забрать вагоны, третье число – номер пути, на который нужно передвинуть вагоны.

Разработайте алгоритм действий машиниста, необходимых для того, чтобы сформировать на каждом из путей составы с одинаковыми фруктами (не важно, на каком именно пути). Алгоритм оформите в виде последовательности команд, записанных в отдельных строках. Каждая команда имеет указанный выше вид: сначала записано число передвигаемых вагонов, потом номер пути с которого передвигаются вагоны, затем номер пути, на который передвигаются вагоны.

Например, следующая запись:

2 3 1
1 2 3
означает «передвинуть 2 вагона с пути 3 на путь 1, затем передвинуть 1 вагон с пути 2 на путь 3».

Чем меньше команд будет в вашем алгоритме, тем большее количество вы получите.

Показать ответ
Ответ:
oleg1836
oleg1836
24.12.2021 08:24
Const
  n = 10;//предельное количество точек

var
  a: array[1..2 * n] of real;
  x, y, l,lmax, lmin: real;
  i, j, k: integer;

begin
  writeln('Введите количество точек (не более ', n, ')');
  readln(k);
  writeln('Вводите координаты точек (x,y) попарно');
  lmax := 0;
  lmin := 1e10;
  for i := 1 to k do
  begin
    j := 2 * i - 1;
    read(a[j], a[j + 1]);
    l := sqr(a[j]) + sqr(a[j + 1]); //квадратами расстояния до точки
    if lmax<l then lmax:=l;
    if lmin>l then lmin:=l
  end;
  writeln;
  writeln('Все точки находятся внутри кольца с радиусами ',sqrt(lmin),', ',sqrt(lmax))
end.

Тестовое решение:

Введите количество точек (не более 10)
5
Вводите координаты точек (x,y) попарно
3 6 2 5 -4 -3 5 7 3 3

Все точки находятся внутри кольца с радиусами 4.24264068711928, 8.60232526704263
0,0(0 оценок)
Ответ:
мага05051
мага05051
14.07.2021 01:19
А нет таких чисел!

var
  i:integer;
begin
  for i:=1 to 10000 do  // по условиям задачи i:=1 to 999
    if (i mod 43 = 41) and (i mod 47 = 43) then
      writeln(i);
end.

Результаты вывода:
1030
3051
5072
7093
9114

Так что минимальное число, удовлетворяющее требованиям, 1030, но оно не трехзначное

Вот более продвинутый алгоритм, делающий то же самое:

var
  n43:integer;
begin
  n43:=127;
  repeat
    n43:=n43+43;
  until (n43 mod 43 = 41) and (n43 mod 47 = 43); //добавить and (n43<1000)
  writeln(n43)
end.

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