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

MeXaHuK0 MeXaHuK0    3   04.06.2019 13:40    1

Ответы
илюхаaaaa илюхаaaaa  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.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика