Поверхность куба со стороной n см покрасили снаружи в синий цвет (со всех шести сторон). После этого его распилили на кубики со стороной 1 см. В результате получились части, у которых синим цветом окрашены 0, 1, 2 или 3 стороны. Посчитайте количество кубиков указанного вида.
Формат входных данных
Первая строка содержит натуральное число n (2≤n≤1000) — размер кубика.
Вторая строка содержит неотрицательное целое число f (0≤f≤3) — количество окрашенных граней у кубиков, число которых нужно посчитать.
Формат выходных данных
Выведите одно неотрицательное целое число — ответ на вопрос задачи. Гарантируется, что оно не превосходит 109.
Пояснение
В примере дано n=3 и f=1. Рассмотрим рисунок: куб 3×3×3 покрасили и распилили на 33=27 маленьких кубиков. Требуется определить, сколько таких кубиков имеют единственную синюю грань.
Это кубики, расположенные посередине каждой из шести граней, их ровно шесть.
1 Ответ
#include <iostream>
int main(void)
{
size_t n, f;
size_t result;
std: :cin >> n;
std: :cin >> f;
if (f == 0)
{
result = (n — 2) * (n — 2) * (n — 2);
}
else if (f == 1)
{
result = (n — 2) * (n — 2) * 6;
}
else if (f == 2)
{
result = (n — 2) * 12;
}
else if (f == 3)
{
result = 8;
}
std: :cout << result;
}