Рассматривая различные прямоугольники и подсчитывая в них число поворотов P, можно прийти к следующему алгоритму. Для любого натурального k получаем:
var M, N, k, mn, P: integer; f: Text;
begin Assign(f, 'input.txt'); Reset(f); Readln(f, M, N); Close(f); if M < N then mn := M else mn := N; if mn = 1 then P := 0 else begin k := mn div 2; if mn mod 2 = 0 then if M = N then P := 4 * k - 2 else P := 4 * k - 1 else if M = N then P := 4 * k else P := 4 * k + 1 end; Assign(f, 'output.txt'); Rewrite(f); Writeln(f, P); Close(f) end.
Рассматривая различные прямоугольники и подсчитывая в них число поворотов P, можно прийти к следующему алгоритму. Для любого натурального k получаем:
var M, N, k, mn, P: integer; f: Text;
begin Assign(f, 'input.txt'); Reset(f); Readln(f, M, N); Close(f); if M < N then mn := M else mn := N; if mn = 1 then P := 0 else begin k := mn div 2; if mn mod 2 = 0 then if M = N then P := 4 * k - 2 else P := 4 * k - 1 else if M = N then P := 4 * k else P := 4 * k + 1 end; Assign(f, 'output.txt'); Rewrite(f); Writeln(f, P); Close(f) end.
var
M, N, k, mn, P: integer;
f: Text;
begin
Assign(f, 'input.txt');
Reset(f);
Readln(f, M, N);
Close(f);
if M < N then mn := M else mn := N;
if mn = 1 then P := 0
else begin
k := mn div 2;
if mn mod 2 = 0 then
if M = N then P := 4 * k - 2
else P := 4 * k - 1
else
if M = N then P := 4 * k
else P := 4 * k + 1
end;
Assign(f, 'output.txt');
Rewrite(f);
Writeln(f, P);
Close(f)
end.
var
M, N, k, mn, P: integer;
f: Text;
begin
Assign(f, 'input.txt');
Reset(f);
Readln(f, M, N);
Close(f);
if M < N then mn := M else mn := N;
if mn = 1 then P := 0
else begin
k := mn div 2;
if mn mod 2 = 0 then
if M = N then P := 4 * k - 2
else P := 4 * k - 1
else
if M = N then P := 4 * k
else P := 4 * k + 1
end;
Assign(f, 'output.txt');
Rewrite(f);
Writeln(f, P);
Close(f)
end.