Из теоремы Шпрага-Гранди следует, что если посчитать функцию Гранди от каждой нитки, а потом взять 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 случая:
Далее нужно было посчитать функцию Гранди от длин всех ниток и взять xor полученных значений.
Итого, решение работает за $$$\mathcal{O}(n)$$$.