@chrisgeeq Ваша главная проблема в том, что вы задаете вопросы в разделе комментариев ответа ~ 3 месяца, в котором было 0 голосов. Никто никогда не найдет здесь ваш вопрос. Если у вас есть конкретный ответ на вопрос, пожалуйста, используйте кнопку «Задать вопрос», чтобы задать его так, чтобы другие могли его увидеть. Как я уже сказал, я понятия не имею о рубине, и я действительно не помню, о чем вообще был весь этот вопрос.

у написать алгоритм, чтобы найти последовательные бонусные очки. Приглашенный получает (1/2) ^ k баллов за каждое подтвержденное приглашение, где k - уровень приглашения: уровень 0 (приглашенные люди) дает 1 балл, уровень 1 (люди, приглашенные кем-то, приглашенным первоначальным клиентом), дает 1/2 балла, приглашения уровня 2 (люди, приглашенные кем-то на уровне 1), награждают 1/4 балла и так далее. Учитывается только первое приглашение: несколько приглашений, отправленных одному и тому же человеку, не дают никаких дополнительных баллов, даже если они получены от разных приглашенных, и учитывается только первое приглашение. Например:

Входные данные:

A recommends B
B accepts
B recommends C
C accepts
C recommends D
B recommends D
D accepts

рассчитывается следующим образом: A получает 1 очко по рекомендации B, 0,5 балла по рекомендации C от B и еще 0,25 балла по рекомендации D от C. A набирает общий балл 1,75 балла.

B получает 1 балл по рекомендации C и 0,5 балла по рекомендации D от C. B не получает баллов по рекомендации D, потому что D был приглашен C ранее. B получает общий балл 1,5 балла.

C получает 1 балл по рекомендации D. C получает общий балл 1 балл.

Выход:{ “A”: 1.75, “B”: 1.5, “C”: 1 }

Какой должен быть алгоритм для этого? Я думаю, что здесь нужно использовать динамическое программирование.

Ответы на вопрос(2)

Ваш ответ на вопрос