В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия
Глебочек
Глебочек
19.06.2021 02:55 •  Информатика

Напишите на pascal . 7 класс с данной . заранее . арифметическая прогрессия для проведения парада по случаю нового года требуется некоторое количество военнослужащих. на параде военнослужащие занимаются исключительно построением в шеренги. шеренга называется регулярной, если военнослужащие в ней либо все одного роста, либо рост возрастает от одного конца шеренги к другому каждый раз на одну и ту же величину, образуя тем самым арифметическую прогрессию. чтобы достойно выступить на параде, создайте из имеющихся в вашем расположении военнослужащих максимальную регулярную шеренгу. входные данные: в первой строке входного файла задано число n - количество военнослужащих (0< =n< =5000). во второй сторке задан их рост в миллиметрах, где 0< =a[i]=5000. выходные данные: количество военнослужащих в максимальной регулярной шеренге.

Показать ответ
Ответ:
PetrovnaSasha
PetrovnaSasha
05.07.2020 13:38
Const
    auto = false;

var
    soldier: array[1..5000]of integer;
    n, i, j, k, max, t, d, imax, a, c: integer;

begin
    if auto then begin
        n := random(5000);
        for i := 1 to n do
            soldier[i] := random(5000);
    end
    else begin
        readln(n);
        for i := 1 to n do
            read(soldier[i]);
    end;
   
    {сортирововчка}
    for i := 1 to n - 1 do
    begin
        imax := i;
        for j := i + 1 to n do
            if soldier[j] > soldier[imax] then
                imax := j;
        max := soldier[i];
        soldier[i] := soldier[imax];
        soldier[imax] := max;
    end;
   
    max := 0;
    for i := 1 to n - 1 do
        for j := i + 1 to n do
        begin
            a := soldier[j];
            d := soldier[j] - soldier[i];
            c := 2;
            for k := j + 1 to n do
                if soldier[k] = a + d then begin
                    a := soldier[k];
                    c := c + 1;
                end;
            if c > max then max := c;
        end;
   
    writeln(max);
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота