Вы не сможете избежать расчета списка, но, возможно, вы можете сделать его немного проще:
В каждом цикле (когда Шелдон снова первый) длина списка удваивается, поэтому это выглядит так:
После 1 цикла: SSLLPPRRHH
После 2 циклов: SSSSLLLLPPPPRRRRHHHH
...
в то время как количество выпитой колы составляет 5 * ((2 ** n) -1), где n - количество циклов.
Таким образом, вы можете рассчитать состояние списка в ближайшем завершенном цикле.
Например.
Кола № 50:
5 * ((2 ** 3)) = 40 означает, что после 40 коксов Шелдон следующий в очереди.
Затем вы можете использовать алгоритм, описанный в задании, и получить последний в строке.
Надеюсь, это поможет.