Алгоритм XOR является правильным и самым быстрым.Медленная часть - это способ, которым вы читаете ввод.
Например, scanf
в C медленнее, чем ручное управление вашим собственным алгоритмом чисел с помощью getchar
(или даже лучше getchar_unlocked
).В проблеме SPOJ, о которой вы упомянули, я получил улучшение с 1,35 до 0,14 с, просто внеся это изменение.Я уверен, что оставшиеся 0,04, чтобы получить лучшее время на сайте, просто из-за лучшего ввода-вывода низкого уровня, чем мой код.