Advertisement
Laster_Alex

Z10

Feb 17th, 2022
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 2.04 KB | None | 0 0
  1. var arr: array[0..65535] of integer;  // КАК я хотел бы использовать динамический массив...
  2. // Но нет, паскаль не разрешает легко имплеминтировать динамику.
  3. var tmp1, k, i1, i2, b, c: integer;
  4. var sum: longint;
  5. begin
  6.     k := 0;
  7.     read(tmp1);
  8.     while (tmp1<>1001) do begin
  9.         arr[k] := tmp1;
  10.         read(tmp1);  // Считываем значение и записываем в массив, что бы потом перебирать их.
  11.         k := k + 1;
  12.     end;
  13.     sum := 0;
  14.     for i1 := 0 to k - 1 do begin  // Перебор всех индексов массива. Пусть i1 будет отвечать за индекс коэфф. b
  15.     // k - 1 необходимо, потому что k это длина массива, а не самый последний индекс.
  16.     // Самый последний индекс это k - 1.
  17.         b := arr[i1];
  18.         for i2 := 0 to k - 1 do begin  // Перебор всех индексов массива. Пусть i2 будет отвечать за индекс коэфф. с
  19.             if (i1 <> i2) then begin  // В условии сказано, что нужно 2 числа из последовательности =>
  20.             // они не должны быть одинаковыми по индексу.
  21.                 c := arr[i2];
  22.                 if (sum < b*b-2*c) then  // Если мы нашли сумму, которая больше, чем предыдущая самая большая сумма,
  23.                 // теперь это самая большая сумма.
  24.                     sum := b*b-2*c;  // Нас просят найти только самую большую сумму,
  25.                     // а не числа, которые составляют эту сумму, так что их можно не запоминать.
  26.             end;
  27.         end;
  28.     end;
  29.     writeln(sum);  // Вывод ответа.
  30. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement