1784: L-knight на шахівниці

Перегляд у форматі PDF

Надіслати розв'язок

Бали: 30,00 (partial)
Time limit: 1.0s
Memory limit: 250M

Author:
Problem type
Allowed languages
Assembly, Awk, Brain****, C, C++, Java, mono C#, Pascal, Perl, Python, Sed, Text, vb

~L~-knight(~a,b~) може переміститися з клітинки (~x_1,y_1~) в клітинку (~x_2,y_2~) де:

~x_2=x_1 \pm a~ і ~y_2=y_1 \pm b~

або

~x_2=x_1 \pm b~ і ~y_2=y_1 \pm a~

Наприклад, ~L~-knight(1,2) або ~L~-knight(2,1) з червоної клітинки може переміститися в будь-яку зелену.

Задається шахівниця розміром ~n \times n~. Дайте відповідь на запитання для кожної пари (~a,b~):

  • Яка мінімальна кількість ходів потрібна для ~L~-knight(~a,b~), щоб перейти з позиції (0,0) в позицію (n-1,n-1)? Якщо ~L~-knight(a,b) не може дістатися до місця призначення, то виведіть -1.

Відповідь вивести для кожного ~L~-knight(~a,b~) згідно формату вихідних даних.

Обмеження

  • ~5 \le n \le 25~
  • ~1 \le a,b \le n~

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

Вхідний потік містить одне ціле число ~n~ - розмірність шахівниці.

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

У вихідний потік вивести ~n-1~ рядок. ~i~-й (де ~1 \le i \le n~) рядок містить ~n-1~ цілих чисел, розділених пропуском, які є мінімальною кількістю ходів для ~L~-knight(~i,j~) для відповідного ~j~ (де ~1 \le j \le n~) щоб перейти з позиції (0,0) в позицію (n-1,n-1).

Наприклад, для ~n=3~ вихідні дані для всіх пар (~i,j~) розтащуються таким чином:

(1,1) (1,2)
(2,1) (2,2)

Примітка

Приклади можливих варіантів ходів для різних ~(i,j)~:

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

5

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

4 4 2 8 
4 2 4 4 
2 4 -1 -1 
8 4 -1 1

Коментарі

Please read the guidelines before commenting.


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