Дана прямоугольная клеточная доска размера m ×n клеток. также дано неограниченное коли- чество стандартных доминошек размера 2 × 1 клетку. доминошки можно поворачивать. требуется уложить как можно больше доминошек на доску так, чтобы соблюдались следующие условия: 1. каждая доминошка полностью покрывает две клетки доски. 2. никакие две доминошки не перекрываются. 3. каждая доминошка полностью лежит внутри доски. касание краев доски допускается. найдите максимальное количество доминошек, которое можно уложить с данными ограничени- ями. формат входных данных в единственной строке записано два целых числа m и n — размеры доски в клетках (1 ⩽ m ⩽ n ⩽ 16). формат выходных данных выведите одно число — максимальное количество доминошек, которое можно уложить. язык с++ , выполняется с long long в приложении code : : bloks
var
x, y: integer;
n: integer;
sum: integer;
mindif: integer;
f: text;
begin
assign(f,'C:\27-A.txt');
reset(f);
readln(f, n);
sum := 0;
mindif := 20001;
while not eof(f) do begin
readln(f, x, y);
if x > y then
sum := sum + x
else
sum := sum + y;
if (abs(x - y) < mindif) and (abs(x-y) mod 3 <> 0) then mindif := abs(x-y);
end;
if sum mod 3 <> 0 then
writeln(sum)
else
writeln(sum - mindif);
end.
Объяснение:
a = 1; b = 4; c = 7
a = 1; b = 7; c = 4
a = 4; b = 7; c = 1
a = 4; b = 1; c = 7
Объяснение:
Вот код программы на C++:
#include <iostream>
using namespace std;
void main()
{
setlocale (LC_ALL, "RUS");
int a, b, c, M;
cout << "Введите число а: ";
cin >> a;
cout << "Введите число b: ";
cin >> b;
cout << "Введите число c: ";
cin >> c;
if (a > b)
{
M = a;
}
else
{
M = b;
}
if (c > b)
{
M = c;
}
else
{
M = b;
}
cout << "Наибольшее число: " << M << endl;
}
Можешь сам(а) на онлайн-компиляторе проверить выражения, если не уверен(а).