procedure MatrixInit(var a:Mas;m,n,p,q:integer); { Заполнение массива размером m*n целыми случайными числами из интервала [p;q] } var i,j,k:integer; begin k:=q-p+1; for i:=1 to m do for j:=1 to n do a[i,j]:=Random(k)-p end;
procedure MatrixOutput(var a:Mas;m,n,k:integer); { вывод элементов матрицы размера m*n в k позициях } var i,j:integer; begin for i:=1 to m do begin for j:=1 to n do Write(a[i,j]:k); Writeln end end;
function IsFits(var a:Mas;m,col:integer):boolean; { функция возвращает true, если колонка col явдяется "подходящей" } var i,max:integer; mv:real; begin max:=a[1,col]; mv:=max; for i:=2 to m do begin mv:=mv+a[i,col]; if max<a[i,col] then max:=a[i,col] end; mv:=mv/m; IsFits:=(max-mv>a[1,col]) end;
procedure ColumnReplace(var a:Mas;m,col:integer); { Замена элементов столбца col единицами } var i:integer; begin for i:=1 to m do a[i,col]:=1 end;
var P: Mas; a,b,m,n,j,k:integer; flag:boolean; begin Randomize; Write('Введите количество строк и столбцов матрицы: '); Read(m,n); Write('Укажите минимальное и максимальной значение элементов: '); Read(a,b); Write('Укажите количество позиций для вывода значения элемента: '); Read(k); MatrixInit(P,m,n,a,b); Writeln('Исходный массив'); MatrixOutput(P,m,n,k); j:=1; repeat flag:=IsFits(P,m,j); if flag then begin ColumnReplace(P,m,j); Writeln('Результирующий массив'); MatrixOutput(P,m,n,k) end else Inc(j) until flag or (j>n); if not flag then Writeln('') end.
1) Одновременно запускаем часы на 3 и 8 минут. После того как истекут часы на 3 мин. - переворачиваем их и ждем еще 3 мин. И снова переворачиваем. 2) Наблюдаем за часами на 8 мин. после 1-го пункта в них осталось песка на 2 минуты. Ждем пока они истекут и сразу начинаем варить зелье. 3) Тем временем в малых часах осталась одна минута, когда она истекает просто перевернем их два раза, тем самым зелье будет вариться 7 минут. (1 мин после 1-2 пунктов + 3 мин + 3 мин. = 7 мин.).
В условии не сказано, когда именно нужно начинать варить, так что допускаю такое решение задачи будет правильным.
Win+Alt+PrtSc
Объяснение:
Для 10ки как минимум