Requêtes de Permutation de Beauté#11732

Requêtes de Permutation de Beauté

4 secondes
256 mégaoctets
Très difficile

Le problème utilise l'indexation à partir de , c'est-à-dire que les tableaux sont numérotés à partir de .

Une permutation de longueur est un tableau d'entiers positifs où chaque élément apparaît exactement une fois et chaque nombre de à n - 1 est présent. Par exemple, , [0, 2, 1], [0, 3, 1, 2] sont des permutations, tandis que [0, 1, 3], , [0, 1, 0] ne le sont pas.

Nous définissons l'ensemble des transformations atteignables de la permutation par rapport à l'ensemble comme l'ensemble des permutations qui peuvent être obtenues à partir de en appliquant l'opération suivante un nombre quelconque de fois (possiblement ) :

Ici, désigne l'opération XOR bit à bit.

L'ensemble est appelé bon par rapport à la permutation si l'ensemble des transformations atteignables de la permutation contient une permutation d'identité.

Nous appelons une permutation de longueur permutation d'identité si ce qui suit est vrai : a_i = i (0 \leq i \leq m - 1).

La beauté de la permutation est définie comme la taille minimale d'un bon ensemble par rapport à elle.

Vous recevez une permutation de longueur . Vous devez afficher la beauté initiale de la permutation. Vous recevez également requêtes. Chaque requête consiste en deux nombres . Après chaque requête, vous devez échanger les éléments aux positions et . Notez que la permutation conserve les changements après chaque requête. En réponse à chaque requête, vous devez afficher la beauté de la permutation résultante.

Entrée

La première ligne contient deux nombres (1 \leq n \leq 5 \cdot 10^5) et (0 \leq \beta \leq 1).

La deuxième ligne contient nombres p_i (0 \leq p_i < n) — la permutation de départ.

La troisième ligne contient un nombre (0 \leq q \leq 5 \cdot 10^5) — le nombre de requêtes.

Dans les lignes suivantes, deux nombres a_i', b_i' (0 \leq a_i', b_i' \leq n - 1) sont donnés — les paramètres de la -ème requête.

Les valeurs de la -ème requête sont déterminées comme suit. Soit la réponse à la requête précédente, ou la beauté de la permutation initiale si c'est la première requête. Alors a_i = (a_i' + last \cdot \beta) \bmod n, et b_i = (b_i' + last \cdot \beta) \bmod n.

Sortie

Dans la première ligne, affichez la beauté de la permutation initiale.

Dans les lignes suivantes, affichez les réponses aux requêtes.

Exemples

Exemple

Loading
Loading

Note

Après la deuxième requête, la permutation devient [5, 2, 1, 3, 4, 0, 6].

Soit S = \{3, 6\}. En utilisant cet ensemble, nous pouvons effectuer les échanges suivants pour transformer la permutation en la permutation d'identité :

  1. Échanger i = 0 et j = 3. La permutation devient [\textbf{3}, 2, 1, \textbf{5}, 4, 0, 6].

  2. Échanger i = 3 et j = 5. La permutation devient [3, 2, 1, \textbf{0}, 4, \textbf{5}, 6].

  3. Échanger i = 1 et j = 2. La permutation devient [3, \textbf{1}, \textbf{2}, 0, 4, 5, 6].

  4. Échanger i = 0 et j = 3. La permutation devient [\textbf{0}, 1, 2, \textbf{3}, 4, 5, 6].

Il peut être prouvé qu'il est impossible d'obtenir la permutation d'identité en effectuant des opérations avec |S| \leq 1.

Notation

  1. ( points) : n \leq 8, \beta = 0;

  2. ( points) : n \leq 32, q = 0, \beta = 0;

  3. ( points) : il est garanti que la réponse ne dépasse pas , \beta = 0;

  4. ( points) : n \cdot q \leq 9 \cdot 10^6, \beta = 0;

  5. ( points) : q \leq 10^4;

  6. ( points) : \beta = 0;

  7. ( points) : aucune restriction supplémentaire.