Не знаю, какое олимпиадное решение подразумевается, но по-нормальному, раз "горячий участок", то много раз считается, и, вероятно, пределы для возможных значений
известны. Так что имеет смысл заранее посчитать значения коэффициентов и хранить в массиве. Сгруппируем слагаемые, вынося
и получим алгоритм с
умножениями и
вычислениями косинусов. Поскольку вычисление косинусов медленнее, чем умножение, можно вычислять их рекуррентно по формулам приведения. В общем, получится
умножений плюс вычисление
,
,
,
.