М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Mesia14
Mesia14
04.12.2021 12:07 •  Информатика

#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;

}

👇
Открыть все ответы
Ответ:
мили241
мили241
04.12.2021

1)Алгоритм будет линейным если каждый из его шагов будет выполнятся поочередно. 2)Этапы: постановка задачи;   построение модели; разработка алгоритма;  проверка правильности алгоритма;  реализация алгоритма;  анализ алгоритма и его сложности;  написание программы на подходящем языке;  отладка программы;  составление документации . 3) Самые значимый: каждый из этапов по-своему значим, поэтому пропустить никакой нельзя. 4) Обычно линейные алгоритмы выводят через блок-схемы, где и указывается итог всей операции.

Объяснение:

4,4(68 оценок)
Ответ:
alex27045
alex27045
04.12.2021
1)
#include <iostream>
using namespace std;
void draw_square(int n)
{
    for(int y = 0; y < n; y++)
    {
        for (int x = 0; x < n; x++)
            cout << "*";
        cout << endl;
   }
}
int main()
{
  int n;
  cin >> n;
  draw_square(n);
  return 0;
}

2)
#include <iostream>
using namespace std;
void drawNumbers(int a)
{
   while(a > 0)
   {
      cout << a%10 << endl;
      a /= 10;
   }
}
int main()
{
    int a;
    cin >> a;
    drawNumbers(a);
    return 0;
}

3)
#include <iostream>
using namespace std;
int main()
{
    //можно гораздо быстрей, но мне лень
    int a;
    cin >> a;
    for(int i = 1; i <= a; i++) if(a%i==0) cout << i << " ";
    return 0;
}

4)
#include <iostream>
using namespace std;
void procedure(int a)
{   
     int b = a;   
     int c = 1;   
     while(b > 0)  {c *= 10; b/=10;}   
     while(c > 1)   
     {       
          cout << (a%c)/(c/10) << endl;       
          c /= 10;   
     }
}
int main()

    int a; 
    cin >> a; 
    procedure(a); 
    return 0;
}
4,8(74 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ