Vous recevez un entier $n$. Trouvez une permutation $p$ (indicée à partir de $0$) de $0,1,\dots, n-1$ telle que pour chaque entier $i\in[0,n)$, $p_i\oplus i=p_i+i$.
Ici $\oplus$ désigne l'opération OU exclusif bit à bit. Le OU exclusif (XOR) est une opération logique en algèbre de Boole qui donne vrai uniquement lorsque les entrées diffèrent (l'une est vraie et l'autre fausse). En d'autres termes, le XOR retourne une valeur vraie si et seulement si les deux valeurs d'entrée sont différentes. Voici une table de vérité pour le XOR.
Un XOR bit à bit est une opération binaire qui prend deux motifs de bits de même longueur et effectue l'opération OU exclusif logique sur chaque paire de bits correspondants. Par exemple : $0101$ (décimal $5$) $\oplus$ $0011$ (décimal $3$) $= 0110$ (décimal $6$).
Entrée
La première ligne contient un entier $n$ $(1\leq n\leq 10^6)$, indiquant la longueur de la permutation.
Sortie
Affichez $n$ entiers sur une seule ligne, représentant $p_0, p_1,\dots,p_{n-1}$. S'il n'existe pas une telle permutation, affichez $-1$ à la place.
Exemples
Entrée 1
3
Sortie 1
0 2 1