11924. Корінь


Відправити розв'язок

Бали: 100
Time limit: 2.0s
Memory limit: 500M

Author:
Problem type
Allowed languages
C++, Java, Pascal, Python

Існує сітка з \(N \times N\) квадратів. Позначимо через (\(i, j\)) квадрат у \(i\)-му рядку зверху та \(j\)-му стовпчику зліва.

Спочатку фігура розміщується на (1, 1). Ви можете повторити наступну операцію будь-яку кількість разів:

  • Нехай (\(i, j\)) буде квадратом, на якому зараз знаходиться фігура. Перемістіть фігуру до квадрата, відстань якого від (\(i, j\)) рівна \(\sqrt{M}\).

Тут ми визначаємо відстань між квадратом (\(i, j\)) і квадратом (\(k, l\)) як \(\sqrt{(i-k)^2+(j-l)^2}\).

Для всіх квадратів (\(i, j\)) визначте, чи може фігура досягти (\(i, j\)). Якщо це можливо, знайдіть мінімальну кількість операцій, необхідних для цього.

Обмеження

  • \(1 \le N \le 400\)
  • \(1 \le M \le 10^6\)
  • Усі значення у вхідних даних є цілими числами.

Формат вхідних даних

Вхідний потік містить цілі числа \(N, M\)

Числа розділяються пропуском.

Формат вихідних даних

У вихідний потік виведіть \(N\) рядків. У \(i\)-му рядку має бути \(N\) цілих чисел. Якщо фігура може досягти (\(i, j\)), \(j\)-те ціле число в \(i\)-му рядку має бути мінімальною кількістю операцій, необхіднлю для цього; інакше має бути -1.

Приклад вхідних даних

3 1

Приклад вихідних даних

0 1 2
1 2 3
2 3 4

Приклад вхідних даних

10 5

Приклад вихідних даних

0 3 2 3 2 3 4 5 4 5
3 4 1 2 3 4 3 4 5 6
2 1 4 3 2 3 4 5 4 5
3 2 3 2 3 4 3 4 5 6
2 3 2 3 4 3 4 5 4 5
3 4 3 4 3 4 5 4 5 6
4 3 4 3 4 5 4 5 6 5
5 4 5 4 5 4 5 6 5 6
4 5 4 5 4 5 6 5 6 7
5 6 5 6 5 6 5 6 7 6

Коментарі

Ще немає коментарів.