Énoncé¶
Joseph Nageant est tout proche du but, il ne reste plus qu'à obtenir quelques informations sur l'accès à la forteresse pour pouvoir enfin y aller.
Pour cela, il compte dérober certains documents à plusieurs endroits dans la ville. Seulement, voilà que notre ami arrive à court d'oxygène…
La ville sous-marine est composée de $N$ maisons, numérotées de $1$ à $N$.
Chaque maison possède un score associé, qui est l'entier correspondant dans le
tableau scores
. Ce score correspond à la valeur des informations
pouvant être dérobées dans cette maison.
Joseph Nageant dispose de $K$ minutes pour récupérer les informations
qu'il recherche avant la prochaine patrouille des gardes.
Il peut se déplacer d'une maison $A$ à une maison $B$ (ou inversement)
en une minute si les deux maisons sont directement reliées par une route.
La liste des $M$ routes est donnée par le tableau routes
.
Joseph Nageant va bientôt tomber à court d'oxygène. Fort heureusement, il sait aussi qu'une unique maison, la maison $1$, stocke des réserves d'oxygène, ce qui lui permet de remplir ses réserves.
On dit alors qu'un chemin $M_0, M_1, \dots, M_i$ est juste si:
- La longueur du chemin (c'est-à-dire, $i$) est inférieure ou égale à $K$,
- La maison $1$ est présente dans le chemin, c'est à dire $M_j = 1$ pour au moins un $j$.
On dit également qu'une paire de maisons $(A, B)$ est juste s'il existe au moins un chemin juste reliant ces deux maisons. Le score de cette paire est alors le produit des scores des maisons $A$ et $B$.
Il vous est demandé de déterminer toutes les paires de maisons justes, et d'en afficher la somme de leur score. Comme le résultat peut devenir très grand, affichez cette somme modulo $1\,000\,000\,007$.
Entrée¶
L’entrée contiendra :
- Sur la première ligne, un entier : N, le nombre de maisons.
- Sur la ligne suivante, un entier : M, le nombre de routes.
- Sur la ligne suivante, un entier : K, le temps restant à Joseph, soit la longueur maximale d'un chemin juste.
- Sur la ligne suivante, une liste de N entiers séparés par des espaces : scores, le score associé à chaque maison.
- Sur les lignes suivantes, une liste de M éléments : routes, la liste
des routes.
- Une ligne par élément de la liste : séparés par des espaces, un entier A (la première maison), et un entier B (la seconde maison).
Sortie¶
Afficher, sur une ligne, la somme des scores des paires de maisons justes, modulo $1\,000\,000\,007$.
Contraintes¶
- $2 \le N \le 100$
- $1 \le M \le 1\,000$
- $1 \le K \le N$
- $0 \le \mathtt{scores}_i \le 1\,000\,000\,006$
- $1 \le A_i, B_i \le N$
- Il n'y a pas de route reliant une maison à elle-même, et toutes les routes sont distinctes.
Contraintes de performance¶
- $2 \le N \le 200\,000$
- $1 \le M \le 200\,000$