1-я задача: 3-х литровым кувшином наполняем кувшин 8 л. После 3-го наполнения в 3-х литровом кувшине останется 1 литр. Затем опорожняем 8 литровый кувшин, с 3-х литрового кувшина переливаем один литр в 8-литровый, и туда -же наливаем два раза по 3 литра - получаем 7 л. 2-я задача: Песочные часы (3-х минутные и 8 минутные) нужно включить за 8 минут до начала приготовления. Через каждые 3 мин переворачиваем 3 минутные часы. По истечении 8 мин, 3-х минутные песочные часы отсчитают 2 мин. В этот момент нужно начать готовить эликсир, через минуту, переворачиваете 3-мин часы и отсчитываете ещё шесть минут (2 раза по 3 мин) . Вот и получите 7 мин!
3-х литровом кувшине останется 1 литр. Затем опорожняем 8 литровый кувшин, с 3-х литрового кувшина переливаем один литр в 8-литровый, и туда -же наливаем два раза по 3 литра - получаем 7 л.
2-я задача: Песочные часы (3-х минутные и 8 минутные) нужно включить за 8 минут до начала приготовления. Через каждые 3 мин переворачиваем 3 минутные часы. По истечении 8 мин, 3-х минутные песочные часы отсчитают 2 мин. В этот момент нужно начать готовить эликсир, через минуту, переворачиваете 3-мин часы и отсчитываете ещё шесть минут (2 раза по 3 мин) . Вот и получите 7 мин!
===== PascalABC.NET =====
function S(a: array[,] of integer) :=
a.Cols.Where(p -> p.All(q -> q >= 0)).SelectMany(p -> p).Sum;
function M(a: array[,] of integer): integer;
begin
var n := a.RowCount;
Result := integer.MaxValue;
var s: integer;
for var i := 0 to n - 2 do
begin
s := 0;
for var j := 0 to i do
s += Abs(a[i - j, j]);
if s < Result then
Result := s
end;
for var j := 1 to n - 1 do
begin
s := 0;
for var i := n - 1 downto j do
s += Abs(a[i, n - i + j - 1]);
if s < Result then
Result := s
end
end;
begin
var n := ReadInteger('n =');
var a := MatrRandom(n, n, -10, 30);
a.Println;
S(a).Println;
M(a).Println;
end.