Дана прямоугольная клеточная доска размера M ×N клеток. Также дано неограниченное коли- чество стандартных доминошек размера 2 × 1 клетку. Доминошки можно поворачивать. Требуется уложить как можно больше доминошек на доску так, чтобы соблюдались следующие условия: 1. Каждая доминошка полностью покрывает две клетки доски. 2. Никакие две доминошки не перекрываются. 3. Каждая доминошка полностью лежит внутри доски. Касание краев доски допускается. Найдите максимальное количество доминошек, которое можно уложить с данными ограничени- ями. Формат входных данных В единственной строке записано два целых числа M и N — размеры доски в клетках (1 ⩽ M ⩽ N ⩽ 16). Формат выходных данных Выведите одно число — максимальное количество доминошек, которое можно уложить. ЯЗЫК С++ , ВЫПОЛНЯЕТСЯ С ПОМОЩЬЮ LONG LONG В ПРИЛОЖЕНИИ Code : : Bloks
// Максимальное количество доминошек зависит от количества клеток // В случае, если общее количество клеток делится на 2, максимальное количество доминошек равно половине от общего количества клеток // Иначе, максимальное количество доминошек равно половине от общего количества клеток минус один cout << M * N / 2 << endl; return 0;
using namespace std;
int main() {
// Максимальное количество доминошек зависит от количества клетокint M, N;
cin >> M >> N;
// В случае, если общее количество клеток делится на 2, максимальное количество доминошек равно половине от общего количества клеток
// Иначе, максимальное количество доминошек равно половине от общего количества клеток минус один
cout << M * N / 2 << endl;
return 0;
}