Напишите на Pascal задачу.
7 класс
Просьба помочь с данной задачой.
Заранее спасибо.

Арифметическая Прогрессия
Для проведения парада по случаю нового года требуется некоторое количество военнослужащих. На параде военнослужащие занимаются исключительно построением в шеренги. Шеренга называется регулярной, если военнослужащие в ней либо все одного роста, либо рост возрастает от одного конца шеренги к другому каждый раз на одну и ту же величину, образуя тем самым арифметическую прогрессию.

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



Входные данные:

В первой строке входного файла задано число N - количество военнослужащих (0<=N<=5000).

Во второй сторке задан их рост в миллиметрах, где 0<=a[i]=5000.



Выходные данные:

Количество военнослужащих в максимальной регулярной шеренге.

1
Комментарий удален
ну бывает

Ответы и объяснения

Лучший Ответ!
2014-03-31T11:37:24+00:00

Это Проверенный ответ

×
Проверенные ответы содержат надёжную, заслуживающую доверия информацию, оценённую командой экспертов. На "Знаниях" вы найдёте миллионы ответов, правильность которых подтвердили активные участники сообщества, но Проверенные ответы - это лучшие из лучших.
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.

Комментарий удален
если правильно, то поставь лучшее решение пожалуйста, надо для статуса) заранеее спасибо)
обязательно
спасибо)