Énoncé¶
Joseph Marchand et son nouvel allié connaissent dès à présent l'emplacement de la tour de contrôle ciblée ! Ils tentent alors de s'y rendre de toute urgence. Cependant, le seul moyen de s'y rendre est d'y aller en sous-marin, et la topologie de la zone rend le trajet difficile...
La ville est représentée par une grille de $\mathtt{hauteur}$ lignes et $\mathtt{largeur}$ colonnes. Votre objectif est de vous déplacer de votre point de départ, le coin en haut à gauche, de coordonnées $(1, 1)$, à l'emplacement de la tour de contrôle, dans le coin en bas à droite, aux coordonnées $(\mathtt{largeur}, \mathtt{hauteur})$, et cela le plus rapidement possible.
La topologie de la zone est représentée par une matrice d'entiers, chaque entier représentant l'altitude de la zone. Le sous-marin se déplace de case en case adjacente (diagonales interdites). Il existe deux types de déplacement faisables par le sous-marin :
- Se déplacer d'un point à un point adjacent, d'altitude égale ou inférieure. Cela prend 100 secondes, quelles que soient les altitudes des deux points.
- Se déplacer d'un point à un point adjacent plus élevé. Cela prend 200 secondes, plus le carré du différentiel d'altitude entre les deux points.
Cependant, Joseph Marin, le conducteur du sous-marin, étant un conducteur expérimenté, il peut réussir à gagner en vitesse sous certaines conditions. Notemment, lors d'une chute d'altitude, Joseph Marin peut conserver son altitude actuelle le temps d'un déplacement. Ainsi :
- Après avoir effectué un déplacement du premier type et perdu de l'altitude, si le prochain déplacement nécessite de regagner autant ou moins d'altitude que l'altitude tout juste perdue, alors ce second déplacement peut se faire en 100 secondes, plutôt que 200 plus le différentiel d'altitude.
- Après avoir effectué un déplacement du premier type et perdu de l'altitude, si le prochain déplacement nécessite de regagner plus d'altitude que l'altitude tout juste perdue, alors le différentiel d'altitude considéré partira du point précédent.
Aidez Joseph Marin à déterminer le temps minimal pour atteindre la tour de contrôle.
Entrée¶
L’entrée contiendra :
- Sur la première ligne, un entier : hauteur, la hauteur de la liste du relief.
- Sur la ligne suivante, un entier : largeur, la largeur de la liste du relief.
- Sur les lignes suivantes, une liste de hauteur éléments : relief, la
liste représentant le relief.
- Une ligne par élément de la liste : une liste de largeur entiers séparés par des espaces.
Sortie¶
Affichez, sur une ligne, un entier : le temps minimal pour atteindre la tour de contrôle.
Contraintes¶
- $1 \le \mathtt{hauteur} \le 25$
- $1 \le \mathtt{largeur} \le 25$
- $-10\,000 \le \mathtt{relief}_i \le 10\,000$
Contraintes de performance¶
- $1 \le \mathtt{hauteur} \le 1\,000$
- $1 \le \mathtt{largeur} \le 1\,000$