Бардак никому не нужен

Из теоремы Шпрага-Гранди следует, что если посчитать функцию Гранди от каждой нитки, а потом взять xor от всех полученных значений, то мы получим значение $$$=0$$$, если позиция Пети проигрышная, и значение $$$>0$$$ иначе. Единственная проблема — ограничения на длины ниток в задаче достаточно большие, поэтому функцию Гранди по определению посчитать не получится.

Для решения давайте просто научимся считать функцию Гранди от нитки длины $$$x$$$. Для начала распишем значение функции Гранди по определению: $$$$$$ g(x) = \operatorname{mex} \bigl\{\, g(a)\oplus g(b) \bigm| a+b = x,\ \gcd(a,b) > 1 \bigr\}. $$$$$$

Утверждается, что: $$$$$$ g(x) = \begin{cases} 0, & \text{если } x = 2 \text{ или } x \text{ нечётно},\\ 1, & \text{если } x \equiv 0 \pmod{4},\\ 2, & \text{если } x \equiv 2 \pmod{4}. \end{cases} $$$$$$

Во время контеста можно было несложно заметить эту закономерность, посчитав функцию Гранди для маленьких длин. Сейчас докажем её по индукции:

База для $$$1 \leq x \leq 3$$$ очевидна.

Пусть утверждение верно для всех $$$s < x$$$, тогда докажем для $$$x$$$.

Рассмотрим 3 случая:

  1. $$$x$$$ нечетно. Тогда все разбиения $$$x = a+b$$$ имеют вид: (четное число $$$>2$$$) + нечетное. Четное число не может быть равно двум, так как в таком случае не выполнится второе условие: обязательно будет $$$\gcd(2, x - 2) = 1$$$. Значит, по предположению индукции, $$$g(\text{нечетное}) = 0$$$, $$$g(\text{четное})>0$$$, тогда их $$$\oplus$$$ будет $$$>0$$$, значит, в множестве $$$\bigl\{\, g(a)\oplus g(b) \bigm| a+b = x,\ \gcd(a,b) > 1 \bigr\}$$$ все числа будут $$$>0$$$, то есть его $$$\operatorname{mex}$$$ будет равен нулю. То есть, функция Гранди от нечетного числа равна нулю.

  2. $$$x \equiv 0 \pmod{4}$$$. Возьмем разбиение $$$x = \frac{x}{2} + \frac{x}{2}$$$, получим $$$g(\frac{x}{2}) \oplus g(\frac{x}{2}) = 0$$$. При этом, xor $$$=1$$$ получить нельзя, так как разрез на 2 нечетных даст $$$0$$$, а разрез на 2 четных даст $$$0$$$ или $$$3$$$. Значит, $$$\operatorname{mex}$$$ будет равен $$$1$$$.

  3. $$$x \equiv 2 \pmod{4}$$$. Рассмотрев разбиения $$$n = \frac{n}{2} + \frac{n}{2}$$$ и $$$n = 2 + (n - 2)$$$, получим xor равный $$$0$$$ и $$$1$$$ соответственно. Из четности $$$x$$$ очевидно, что xor равный $$$2$$$ получить невозможно. Значит, $$$g(x) = 2$$$.

Далее нужно было посчитать функцию Гранди от длин всех ниток и взять xor полученных значений.

Итого, решение работает за $$$\mathcal{O}(n)$$$.