На трёх путях сортировочной станции стоят вагоны с абрикосами (А), бананами (Б) и вишней (В) так, как это показано на рисунке.
Машинист тепловоза (Т) может за один раз прицепить к тепловозу один или несколько вагонов с какого-нибудь пути, передвинуть их на правый путь, после чего передвинуть их на любой левый путь. Например, если тепловоз заберет 2 вагона с пути номер 3 на путь номер 1, то после такого действия распределение вагонов по путям будет таким.
А В Б А В
Б В А
Б
Соответствующую команду перемещения будем записывать так.
2 3 1
Что означает, что необходимо передвинуть 2 вагона с пути номер 3 на путь номер 1. Первое число обозначает количество перемещаемых вагонов, второе число – номер пути, с которого нужно забрать вагоны, третье число – номер пути, на который нужно передвинуть вагоны.
Разработайте алгоритм действий машиниста, необходимых для того, чтобы сформировать на каждом из путей составы с одинаковыми фруктами (не важно, на каком именно пути). Алгоритм оформите в виде последовательности команд, записанных в отдельных строках. Каждая команда имеет указанный выше вид: сначала записано число передвигаемых вагонов, потом номер пути с которого передвигаются вагоны, затем номер пути, на который передвигаются вагоны.
Например, следующая запись:
2 3 1
1 2 3
означает «передвинуть 2 вагона с пути 3 на путь 1, затем передвинуть 1 вагон с пути 2 на путь 3».
("девочка, вырастившая маргаритки, обратила внимание Розы...") и не Рита ("ни у одной из девочек имя не совпадает с названием любимых цветов"), значит, её зовут Анюта. Далее следует, что Роза (вырастила не розы) могла вырастить только анютины глазки, а Рита - розы.
б) Говорит правду либо Виктор, либо Марат, так как их показания противоположны по смыслу. Значит Андрей и Денис соврали, из показания Дениса следует, что стекло разбил именно он. Правду сказал Марат.
begin
var m:=ReadInteger('Число строк=');
var n:=ReadInteger('Число стролбцов=');
var a:=MatrixRandom(m,n,-99,99);
var imax:=-1; var jmax:=0;
var imin:=0; var jmin:=0;
var min:=100; var max:=-100; // больше большего, меньше меньшего
for var i:=0 to m-1 do begin
for var j:=0 to n-1 do begin
Write(a[i,j]:4);
if (a[i,j]>0) and (a[i,j] mod 2=0) then begin
if a[i,j]<min then begin imin:=i; jmin:=j; min:=a[i,j] end;
if a[i,j]>max then begin imax:=i; jmax:=j; max:=a[i,j] end
end
end;
Writeln
end;
if imax<>-1 then begin
Writeln('Минимальный четный положительный элемент A[',
imin+1,',',jmin+1,']=',a[imin,jmin]);
Writeln('Максимальный четный положительный элемент A[',
imax+1,',',jmax+1,']=',a[imax,jmax])
end
else
Writeln('В массиве нет положительных четных элементов')
end.
Тестовое решение
Число строк= 5
Число стролбцов= 8
-59 98 55 -92 -98 68 5 -82
63 49 41 7 51 22 55 -4
-78 42 -35 -60 -6 -15 -34 -28
-14 55 -44 22 74 -50 -98 85
50 2 65 39 -47 -59 -7 -87
Минимальный четный положительный элемент A[5,2]=2
Максимальный четный положительный элемент A[1,2]=98