Du hast ein 8×8-Gitter, bei dem die Zeilen von oben nach unten mit 0 bis 7 und die Spalten von links nach rechts ebenfalls mit 0 bis 7 nummeriert sind. Auf diesem Gitter befindet sich ein Springer in der Zelle (a, b). Der Springer kann sich nach den üblichen Schachregeln bewegen, die folgendermaßen definiert sind:
Er bewegt sich in einer „L“-Form: zuerst zwei Felder in eine Richtung (horizontal oder vertikal), dann ein Feld senkrecht dazu.
Er darf das 8×8-Gitter nicht verlassen.
Jeder Zug des Springers hat Kosten. Die Kosten für den Zug des Springers von Position zu Position sind definiert als y⋅r + x⋅c.
Ausgehend von der Anfangsposition (a, b) sollst du die minimalen Kosten berechnen, um den Springer von (a, b) zu jeder anderen Zelle des Gitters zu bewegen.
Schreibe ein Programm, das die Anfangsposition des Springers als Eingabe nimmt und für jede Zelle des Gitters die minimalen Kosten ausgibt.
Eingabe
Die Eingabe besteht aus einer einzelnen Zeile mit zwei durch Leerzeichen getrennten ganzen Zahlen a und b (0 ≤ a, b ≤ 7), welche die Anfangsposition des Springers angeben.
Ausgabe
Gib acht Zeilen aus, in denen jeweils acht durch Leerzeichen getrennte ganze Zahlen stehen. Die i-te Zahl in der j-ten Zeile repräsentiert die minimalen Kosten, um den Springer von (a, b) zur Position (i, j) auf dem 8×8-Gitter zu bewegen.