Enoncé¶
Les amis se rendent compte que la machine du mathématicien était en fait un encodeur, le même qu’ils ont utilisé lors de la création de la machine ! Ils peuvent donc s’en servir pour aller à l’année qu’ils souhaitent... Cependant, ils confondent l’entrée et la sortie, et se retrouvent à aller dans le mauvais sens. Ne sachant plus du tout en quelle année ils ont atterri, les jeunes sortent de la machine pour tenter de se repérer avant de faire, ils l’espèrent, un bond final vers leur époque d’origine.
Les jeunes arrivent coincé dans une grotte. Le gardien est un homme de Néandertal qui joue à un jeu de société primitif — qui a dit qu'à cette époque les hommes ne s’amusaient pas ? Il leur fait comprendre de quelques grognements que s’ils le battent à son jeu, il les laissera sortir de la grotte et leur offrira quelques reliques qu’il a récolté (sinon coup d’massue !) Il faut aider les amis à gagner afin de sortir de la grotte.
Peu rassuré, le groupe inspecte le plateau de jeu. Il contient une grille de $M \times M$ cases d'entiers compris entre 1 et 10, de $3$ pions et d'une peinture approximative où est indiquée une liste $valeurs$ de $N$ entiers. C'est décidément un Néandertal en avance sur son temps.
De quelques grognements habilement nuancés, le matraqueur leur décrit les règles pour le déroulement d'une partie de $N$ tours :
- Les pions sont tous placés au départ sur la case en haut à gauche du plateau.
- Pour valider le tour $i$, il faut qu'un pion soit déplacé sur une case ayant pour valeur $valeurs_i$. Ce pion n'est pas forcément le i-ème pion et n'est pas obligatoirement sur la case de départ au début du mouvement (le pion bougé pourra être déplacé une nouvelle fois lors d'un autre tour).
- Il est possible de déplacer un seul pion par tour, d'une case $X$ à $Y$ avec un coût correspondant au produit des cases d'un chemin de $X$ à $Y$ (sans diagonale). La première case $X$ n'est pas comprise dans le déplacement, donc dans le calcul du coût.
- Si un pion est déjà sur une case de valeur $valeurs_i$, alors il n'est pas obligatoire de faire un déplacement, le coût est alors $0$.
Le score de chaque joueur est la somme de ses coûts de déplacements. Dans ce jeu, le but est d'avoir le plus petit score possible.
Malheureusement pour eux, le Néandertal se débrouille très bien à ce jeu et joue toujours de manière optimale. La seule façon pour s'en sortir est alors de jouer également de manière optimale, pour égaliser le score du gardien antédiluvien.
Il est alors nécessaire d'aider Oscar en affichant le plus petit score possible ou $-1$ si la partie est impossible.
Entrée¶
L'entrée contiendra :
- Sur la première ligne, un entier : N, le nombre de tours.
- Sur la ligne suivante, une liste de N entiers séparés par des espaces : valeurs, la liste des valeurs à visiter.
- Sur la ligne suivante, un entier : M, la taille de chaque côté du plateau.
- Sur les M lignes suivantes, une liste de M entiers séparés par des espaces : plateau, le plateau de jeu.
Sortie¶
Afficher le plus petit score possible ou $-1$, si la partie est impossible.
Contraintes¶
- $1 \le N \le 12$
- $1 \le valeurs_{i,j} \le 10$
- $1 \le M \le 4$
- $1 \le plateau_{i,j} \le 10$
Contraintes de performance¶
- $1 \le N \le 1\,000$