удаляя из candidates и not вершины, не СОЕДИНЕННЫЕ с v
И я правильно понимаю, через данный алгоритм, я смогу собрать множество количество несовместных пар тегов?
Out. Сколько итераций она делает? А сколько должна? Добавьте один цикл и измените границы у существующего. Больше подсказок давать не буду.
Переведите весь файл в текст и подсчитайте сколько раз каждый символ встречается. По этой информации уже можно будет дальше судить. Погуглите статистику букв в словах на русском и английском и заменяйте самые частые буквы в шифре на них и смотрите, что получается.