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

Напишите на Pascal задачу. 7 класс Просьба помочь с данной задачой. Заранее спасибо. Арифметическая Прогрессия Для проведения парада по случаю нового года требуется некоторое количество военнослужащих. На параде военнослужащие занимаются исключительно построением в шеренги. Шеренга называется регулярной, если военнослужащие в ней либо все одного роста, либо рост возрастает от одного конца шеренги к другому каждый раз на одну и ту же величину, образуя тем самым арифметическую прогрессию. Чтобы достойно выступить на параде, создайте из имеющихся в вашем расположении военнослужащих максимальную регулярную шеренгу. Входные данные: В первой строке входного файла задано число N - количество военнослужащих (0<=N<=5000). Во второй сторке задан их рост в миллиметрах, где 0<=a[i]=5000. Выходные данные: Количество военнослужащих в максимальной регулярной шеренге.
Гость
Ответ(ы) на вопрос:
Гость
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.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы