Есть ответ 👍

#include

#include

#include

#include

#define NN 1000000

#define eps 1e-7

int n;

double C;

double a[NN], p[NN];

int h[NN];

int s, t, i, j;

double l, r;

double

get_h (void)

{

assert (s < t);

return a[h[s]];

}

int

pop_h (void)

{

assert (s < t);

return h[s++];

}

void

push_h (int x)

{

while (s < t && a[h[t - 1]] < a[x])

t--;

h[t++] = x;

}

int

main (int argc, char *argv[])

{

double ev, ev1, ev2;

int x;

scanf ("%d%lf", &n, &C);

for (i = 0; i < n - 1; i++)

scanf ("%lf", &a[i]);

for (i = 0; i < n; i++)

p[i] = 0;

s = 0; t = 0;

i = 0; j = 1;

l = C; r = 0;

push_h (0);

// printf('\n');

while (j < n && i < j && l > a[j - 1] + eps)

{

ev1 = (l - r) * (j - i) / (j - i + 1);

if (s < t)

{

ev2 = (l - get_h ()) * (j - i);

ev = (ev1 < ev2) ? ev1 : ev2;

}

else

ev = ev1;

l -= ev / (j - i);

r += ev;

assert (l + eps > r);

if (fabs (l - r) < eps)

{

push_h (j);

j++;

r = 0;

}

if (fabs (l - get_h ()) < eps)

{

x = pop_h ();

for (; i <= x; i++){

p[i] = l;

}

i = x + 1;

}

if ((i == j) || (l < a[j - 1] + eps))

{

for (; i < j; i++){

p[i] = l;

}

l = r;

r = 0;

i = j;

push_h (j);

j++;

}

}

for (; i < j; i++){

p[i] = l;

}

for (i = 0; i < n; i++)

printf ("%0.20lf\n", p[i]);

return 0;

}

197
364
Посмотреть ответы 1

Ответы на вопрос:


11000(2)-23(10),18(10)-10010(2),27(10)-11011(2)

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS