rows строк и cols столбцов и tokens одинаковых фишек. Раскладка — это способ поставить все фишки на доску так, чтобы в каждой клетке стояло не больше одной фишки.
Для одной раскладки посчитаем сумму манхэттенских расстояний по всем парам фишек (расстояние между клетками (r1, c1) и (r2, c2) равно |r1 − r2| + |c1 − c2|).
Верните сумму этой величины по всем возможным раскладкам. Ответ может быть огромным, поэтому верните его по модулю 10⁹ + 7.rows=1, cols=3, tokens=2 → 4
Раскладок три: фишки в клетках 1 и 2 (расстояние 1), 1 и 3 (расстояние 2), 2 и 3 (расстояние 1). Всего 1 + 2 + 1 = 4.
rows=2, cols=2, tokens=3 → 16
Есть 4 способа занять три клетки из четырёх. В каждом две пары фишек стоят рядом (расстояние 1) и одна пара — по диагонали (расстояние 2), то есть сумма 4. Итого 4 · 4 = 16.
rows=1, cols=3, tokens=2
4
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 91 тест на сервере, включая скрытые.