Реакторчане, нужна помощь.
Прохожу курс cs50. После каждой лекции они дают пару задачек, которые надо решить. Я застрял на задачке Tideman, на Си.
Суть задачи - сформировать алгоритм выборов Тайдмана, когда каждый голосующий выбирает не конкретного кандидата, а располагает всех кандидатов в порядке предпочтения. Из этих предпочтений строится график (двумерный массив) со всеми кандидатами и указателями от одного кандидата к другому, от победителя к проигравшему. Тот, на кого никто не указывает - побеждает в голосовании.
В самой задачке надо прописать 6 функций, можно добавлять дополнительные функции, но менять main нельзя. Я написал все, но проверку через сайт прошли только 5. Последняя функция проходит в моих собственных тестах, а на сайте не проходит.
У них, кстати, есть своё собственное IDE, довольно удобное, надо только через аккаунт GitHub'а зайти.
Саму функцию скину в комменты, чтобы пост не удлинять.
Ну и как же без купона.
Ах да, я писал в личку ребятам с курса, писал в дискорд - никто мне толком не ответил. В интернете ничего по задаче не нашел.
Для этого она должна использовать глобальную переменную candidate_count и глобальный двумерный булевый массив locked, который представляет из себя сам график.
Например: locked[2][4] = true; означает, что кандидата "2" предпочитают кандидату "4", а locked[0][2] = true; означает, что нулевого кандидата предпочитают перед вторым.
Суть функции - найти источник графика, то есть кандидата, на которого никто не указывает. Я написал функцию следующим образом: