Top.Mail.Ru
Ответы

2Помогите решить пожалуйста, на любом из этих языков Python 3,C++, PascalABC.NET, Java, C#, Go, Rust, PHP, КуМиР, Kotlin

Раскрашенный куб
Ограничение по времени: 1 секунда

Поверхность куба со стороной n см покрасили снаружи в синий цвет (со всех шести сторон). После этого его распилили на кубики со стороной 1 см. В результате получились части, у которых синим цветом окрашены 0, 1, 2 или 3 стороны. Посчитайте количество кубиков указанного вида.

Формат входных данных
Первая строка содержит натуральное число n (2≤n≤1000) — размер кубика.
Вторая строка содержит неотрицательное целое число f (0≤f≤3) — количество окрашенных граней у кубиков, число которых нужно посчитать.

Формат выходных данных
Выведите одно неотрицательное целое число — ответ на вопрос задачи. Гарантируется, что оно не превосходит 10 в 9 степени.

Система оценки
Решения, правильно работающие при f=0, будут оцениваться в 30 баллов.
Решения, правильно работающие при f=1, будут оцениваться в 30 баллов.
Решения, правильно работающие при f=2, будут оцениваться в 30 баллов.
Решения, правильно работающие при f=3, будут оцениваться в 10 баллов.

Пояснение
В примере дано n=3 и f=1. Рассмотрим рисунок: куб 3×3×3 покрасили и распилили на 3в 3 степени=27 маленьких кубиков. Требуется определить, сколько таких кубиков имеют единственную синюю грань.

Это кубики, расположенные посередине каждой из шести граней, их ровно шесть.

Ввод
3
1
Ввод
6

По дате
По рейтингу
Аватар пользователя
Новичок

Забавно не то, что здесь задают этот вопрос, а то, что кто-то всерьёз пишет код, циклом решающий эту примитивную арифметическую задачу для начальной школы.

12
 n = int(input()) - 2
print([n ** 3, 6 * n ** 2, 12 * n, 8][int(input())]) 
Аватар пользователя
12345678910
 n = int(input()) 
f = int(input()) 
DP = [[0 for j in range(4)] for i in range(1001)] 
DP[2][3] = 8 
for i in range(3, n + 1): 
    DP[i][3] = DP[i - 1][3] 
    DP[i][2] = DP[i - 1][2] + 12 
    DP[i][1] = DP[i - 1][1] + DP[i - 1][2] + 6 
    DP[i][0] = DP[i - 1][0] + DP[i - 1][1] // 2 + DP[i - 1][2] // 4 + 1 
print(DP[n][f])