Traque & Matraque – Épreuve régionale 2025

Niveau 3 ⋅ Validation weight: 35%

Énoncé

Arrivé au point de rencontre indiqué par la lettre, il rencontre alors enfin son auteur. Quelle surprise ! Il s'agit du dirigeant de la ville lui-même, Joseph Martial !

Le dirigeant explique alors qu'il est lui aussi au courant des manigances qui se produisent dans la ville, et compte bien nous aider à les faire cesser. Notre objectif est maintenant de trouver la salle de contrôle où les dispositifs doivent sûrement se trouver.

Le dirigeant suspecte deux gardes de la ville, Joseph Traque et Joseph Matraque, d'être affiliés à ce complot. Après quelques investigations, vous avez pu obtenir l'information que les deux gardes vont se retrouver aujourd'hui pour s'échanger un colis confidentiel. Votre objectif va donc être de les intercepter avant que l'échange de colis n'ait lieu.

La ville est représentée par un graphe pondéré non orienté, dont les arêtes symbolisent les rues, les poids symbolisent le temps nécessaire pour traverser la rue, et les sommets symbolisent les intersections entre les différentes rues.

Les deux gardes, Traque et Matraque, sont situés sur deux sommets du graphe, et tentent de se rejoindre afin d'échanger un colis. Pour ce faire, ils suivent tous deux un chemin défini en entrée.

Joseph a comme mission d'empêcher cet échange d'avoir lieu. Pour cela, il doit se trouver sur un sommet au moment ou l'un des deux gardes le traverse. Cependant, si Joseph arrive après que les deux gardes ont échangé leur colis, il sera alors trop tard pour les intercepter. Ainsi, si les trois personnes se rencontrent en même temps sur un sommet, l'interception a tout de même lieu.

La position initiale de Joseph sera une intersection donnée explicitement en entrée, tandis que Traque et Matraque commenceront respectivement au début et à la fin de leur chemin indiqué. Les déplacements de Joseph, Traque et Matraque s'effectuent de sommet en sommet, en "temps réel".

Aidez Joseph à déterminer le temps nécessaire au minimum pour intercepter l'un des deux gardes. Si l'interception est impossible à temps, affichez -1.

Entrée

L’entrée contiendra :

  • Sur la première ligne, un entier : N, nombre d'intersections dans la ville.
  • Sur la ligne suivante, un entier : M, nombre de rues.
  • Sur les lignes suivantes, une liste de M éléments : rues, liste des rues.
    • Une ligne par élément de la liste : séparés par des espaces, un entier intersection 1 (1ère intersection), un entier intersection 2 (2ème intersection), et un entier temps (temps nécessaire pour traverser la rue).
  • Sur la ligne suivante, un entier : longueur chemin, nombre d'intersections dans le chemin emprunté par Traque et Matraque.
  • Sur la ligne suivante, une liste de longueur chemin entiers séparés par des espaces : chemin, liste des intersections représentant le chemin emprunté par Traque et Matraque.
  • Sur la ligne suivante, un entier : joseph, position de Joseph.

Sortie

Afficher, sur une ligne, le temps minimal nécessaire à Joseph pour intercepter Traque ou Matraque. S'il est impossible pour Joseph d'intercepter Traque ou Matraque à temps, afficher -1.

Contraintes

  • $3 \le N \le 15$
  • $2 \le M \le 20$
  • $1 \le \mathtt{longueur chemin} \le 15$
  • $1 \le \mathtt{chemin}_i \le N$
  • $1 \le \mathtt{joseph} \le N$
  • $1 \le \mathtt{intersection 1} \le N$
  • $1 \le \mathtt{intersection 2} \le N$
  • $1 \le \mathtt{temps} \le 15$
  • On vous garantit que le chemin de Traque et Matraque est un chemin simple, donc que tous les sommets de ce chemin sont distincts.

Contraintes de performance

  • $2 \le N \le 100\,000$
  • $2 \le M \le 200\,000$
  • $1 \le \mathtt{longueur chemin} \le 100\,000$
  • $1 \le \mathtt{temps} \le 100\,000$

Contraintes d'exécution

Utilisation mémoire maximum
100000 kilo-octets
Temps d'exécution maximum
1000 millisecondes

Exemples d'entrée/sortie

Exemple d'entrée
5
5
1 2 8
2 3 6
3 4 1
4 5 3
5 2 2
3
1 2 3
4
Exemple de sortie
6
Commentaire

Le graphe ci-dessous représente la ville décrite en entrée. Le chemin choisi par Traque (T) et Matraque (M) y est représenté par des tirets rouges.

Exemple 1

Le chemin permettant à Joseph (J) d'intercepter Traque ou Matraque le plus rapidement possible est marqué en pointillés bleus. En le suivant, Joseph atteint le sommet $2$ en $5$ secondes, ce qui le fait arriver $1$ seconde avant Matraque. Ainsi, il peut intercepter ce dernier avant la rencontre entre Traque et Matraque, qui se serait produite $2$ secondes plus tard sur ce même sommet. Joseph va donc intercepter Matraque après $6$ secondes.

Exemple d'entrée
5
5
1 2 1
2 3 2
2 5 4
5 4 5
4 1 3
3
1 2 3
5
Exemple de sortie
-1
Commentaire

Le graphe ci-dessous représente la ville décrite en entrée. Le chemin choisi par Traque (T) et Matraque (M) y est représenté par des tirets rouges.

Exemple 2

Pour tenter de les intercepter, Joseph se dirige vers le sommet $2$, suivant ainsi le chemin représenté en pointillés bleus. Malheureusement, il n'atteindra ce sommet qu'après $4$ secondes, tandis que Traque le traversera au bout d'une seconde pour rejoindre Matraque de l'autre côté, au niveau de la croix violette (située entre les sommets $2$ et $3$). Après 2 secondes, Traque et Matraque se seront donc déjà retrouvés. Joseph ne pourra donc pas les intercepter avant l'échange du colis. Le programme affichera alors $-1$.