Coffre électronique – Qualification 2022

Niveau 5

Énoncé

Joseph Marchand s'est rendu compte que le coffre qu'il cherche à ouvrir est bien trop sécurisé pour qu'il puisse deviner la combinaison d'une façon aussi simple ! Cependant tout espoir n'est pas perdu, car il a réussi à modifier le circuit. Il a rajouté un certain nombre de cables électriques, et est capable de changer la valeur d'une puce à volonté.

Le coffre contient un circuit complexe, décrit sous la forme d'un ensemble de puces, reliées entre elles par des fils. Il existe au moins un chemin entre chaque paire de puces (depuis que Joesph à rajouté des fils, il peut y en avoir plusieurs). Chaque puce envoie un signal $s_i$ au verrou lorsqu'elle est activée. Joseph Marchand tente de passer outre la sécurité du coffre et a besoin de votre aide pour calculer rapidement les effets de ses manipulations.

Il veut régulièrement modifier la valeur $s_i$ contenue par une puce, puis mesurer l'effet que cela à sur le circuit en connectant les deux bornes d'un générateur électrique à deux puces $a$ et $b$ du circuit. Il se demande alors quel signal est envoyé au verrou du coffre suite à cette opération. Une puce $c$ est activée s'il existe un chemin de $a$ vers $b$ passant par $c$, qui ne repasse pas deux fois par le même fil (mais peut passer deux fois par la même puce). Le signal reçu par le verrou est alors le produit du signal envoyé par chaque puce activée, modulo $1671404011$ (car on ne peut pas représenter de trop grands nombres par un signal électrique).

Exemple

exemple

Ce circuit est l'état initial du circuit dans le premier exemple d'entrée. Les valeurs des puces 2, 3 et 5 vont cependant changer.

Entrée

L'entrée contiendra :

  • Sur la première ligne, un entier : N, nombre de puces.
  • Sur la ligne suivante, un entier : M, nombre de fils.
  • Sur la ligne suivante, un entier : R, nombre de requêtes.
  • Sur la ligne suivante, une liste de N entiers séparés par des espaces : signaux, liste des signaux.
  • Sur les lignes suivantes, une liste de M éléments : fils, liste des fils entre les puces.
    • Une ligne par élément de la liste : séparés par des espaces, un entier puce1 (première extrémité du fil), et un entier puce2 (seconde extrémité du fil).
  • Sur les lignes suivantes, une liste de R éléments : requetes, liste des requêtes.
    • Une ligne par élément de la liste : séparés par des espaces, un entier puce modifiee (puce dont la valeur est modifiée), un entier nouvelle valeur (nouvelle valeur de la puce), un entier puce a (première extrémité alimentée), et un entier puce b (seconde extrémité alimentée).

Sortie

Affiche le signal envoyé au coffre-fort pour chaque requête.

Contraintes

  • $1 \le N \le 100\,000$
  • $1 \le M \le 100\,000$
  • $1 \le R \le 100\,000$
  • $0 \le s_i \le 1\,671\,404\,011$
  • $0 \le a_i, b_i, x_i, y_i < N$

Contraintes d'exécution

Utilisation mémoire maximum
20000 kilo-octets
Temps d'exécution maximum
1500 millisecondes

Exemples d'entrée/sortie

Exemple d'entrée
8
8
5
4 3 7 5 3 2 3 0
0 1
1 3
1 4
4 3
3 5
2 4
2 6
6 7
3 10 0 5
5 1 4 5
2 3 0 6
3 5 0 7
2 14 1 2
Exemple de sortie
720
90
3240
0
630
Exemple d'entrée
12
15
5
1671404010 1671404009 0 1 3 8 2 12 1 3 0 6
0 1
2 0
2 1
3 2
3 4
9 3
5 3
4 5
7 5
5 6
4 6
8 4
8 6
9 10
11 10
2 1371404010 3 2
7 7 7 7
8 10 3 3
9 4 9 7
7 8 2 10
Exemple de sortie
1285272102
7
480
13440
0