Для начала возьмем все элементы по модулю $$$2$$$. Теперь все элементы равны единицам и нулям. Можно заметить, что если удалить все $$$a_i$$$, которые равны нулю, то $$$S_v$$$ для других не изменится. Удалим все $$$a_i$$$ равные нулю, у которых изначальный $$$S_v$$$ нечетен, если $$$S_v$$$ равен нулю, то ответа нет. Тех $$$v$$$, у которых $$$S_v$$$ четен, мы удаляем по мере удаления единиц.
Теперь нужно разобраться с единицами. Всех $$$v$$$, у которых $$$a_v$$$ равен нулю, удалим из графа, оставив лес (граф из нескольких несвязных деревьев) из единиц. Решим задачу для каждого нового дерева из единиц. Для какого-то дерева из единиц размера $$$n$$$, ответа нет, когда $$$n$$$ четен. Когда $$$n$$$ четен, количество ребер нечетно, но каждое удаление удаляет одну вершину и четное количество ребер. Отнимая от изначального нечетного количество ребер четные числа, мы никогда не достигнем нуля ребер (то есть пустого графа). Теперь сделаем утверждение — когда $$$n$$$ нечетен, ответ есть всегда.
Скажем, что для пары смежных вершин $$$(v, u)$$$, $$$v$$$ дает вклад в $$$u$$$ тогда, когда при удаление $$$u$$$, компонента вершины $$$v$$$ становится четного размера. Обозначим $$$f(v)$$$ как количество вершин, дающих вклад в $$$v$$$. Можно понять, что удалять нужно ту вершину, у которой $$$f(v)$$$ равен нулю. Компоненты всех соседей у такой вершины нечетного размера, а для получения нечетного $$$n$$$, нам нужно чтобы у нее было четное количество соседей (значит мы однозначно сможем удалить ее из графа). Теперь утверждается, что такая вершина всегда есть.
ДоказательствоРассмотрим какое-то ребро $$$(v, u)$$$ в дереве, поскольку $$$n$$$ нечетен, вклад дает либо $$$v$$$ в $$$u$$$, либо $$$u$$$ в $$$v$$$. Получается, сумма по всем $$$f(v)$$$ равна $$$n-1$$$, а значит по принципу Дирихле существует вершина, у которой $$$f(v)$$$ равен нулю, что и требовалось доказать.
Можно заметить, что после удаления вершины $$$v$$$, значения $$$f$$$ меняются только для соседей $$$v$$$. Для всех соседей $$$u$$$ вершины $$$v$$$ значение $$$f(u)$$$ уменьшается на $$$1$$$, ведь вклад давался из $$$v$$$ в $$$u$$$. Один раз посчитаем все значения $$$f$$$, и с помощью BFS будем удалять вершины, у которых значения $$$f$$$ равно нулю. Также не будем забывать, что некоторые нулю нужно удалить по мере удаления единиц. Это решение работает за O(n) операций.