Получил ответ от эксперта. Я в шоке. Цитирую как есть.
Комментарии эксперта:
В решенииэкзаменуемого допущена ошибка, размер используемой памяти для массивов D1 и D2 зависит от входных данных,
Во-первых, если размер массива гораздо больше, чем количество точек, то нельзя сказать «размер используемой памяти зависит от количества точек», соответственно критерий на 3 балла не выполняется
Во-вторых, нельзя сказать, что «время работы линейно зависит от N»
Согласно критериям к оценке работы ученика и, исходя из того, что программа работает верно и все исходные данные точек сохраняются в массиве, где рассматриваются все возможные треугольники, из которых выбираются подходящие, работа ученика должна быть оценена  на 2 балла. 
Добавлено спустя 1 минуту 49 секунд:Во-вторых, нельзя сказать, что «время работы линейно зависит от N»
КАК????? ПОЧЕМУ???? Почему этого сказать нельзя? Время работы линейно зависит N. Именно так можно и нужно сказать. Нелинейная зависимость  - это вложенные циклы, которых в программе нет. Время работы зависит от N так:
t=kt*N+kt*(N-M)=2*kt*N-kt*M где kt - коэффициент перевода в величину времени, а М - количество точек не удовлетворяющих условию x=y или x=-y.
t=2*kt*N-kt*M это классическое линейное уравнение
Добавлено спустя 2 минуты 8 секунд:Согласно критериям к оценке работы ученика и, исходя из того, что программа работает верно и все исходные данные точек сохраняются в массиве, где рассматриваются все возможные треугольники, из которых выбираются подходящие, работа ученика должна быть оценена  на 2 балла.
ДА БЛИН!!!! КАК???????В массив сохраняются не все исходные данные! В массив сохраняются только те исходные данные, которые соответствуют условию x=y или x=-y, а это, в общем случае, далеко не все исходные данные!
Треугольники все возможные у ученика так же не рассматриваются. Он, полностью соответствуя своему описанию алгоритма, а так же совпадая с правильным ответом из самого задания ищет два максимальных значения катетов. Он не рассматривает треугольники вообще. Рассмотрение всех возможных треугольников - это либо поиск нужного треугольника по площади либо перебор для каждого катета с одной стороны всех катетов с другой. Что никак не сделать с линейной зависимостью от N, а у него зависимость именно линейная.
Добавлено спустя 1 час 59 минут 36 секунд:bormant писал(а):2) Фактически используемые размеры ND1 и ND2 зависят не от N (как выше в примере "на 2"), а от количества подходящих треугольников (Abs(x)=Abs(y)), которое меньше или равно N.
Пришло в воспалённую голову.
Чтобы зависело от N, по Вашему, нужно, чтобы все точки были записаны в массив? Тогда ведь будет не меньше или равно, а чётко равно. Т.е., как, собственно, Вы и писали:
- Код: Выделить всё
-     var
 N: integer;
 D1, D2: array [1..1000] of integer;
 Max1, Max2: integer; S: integer; i, x, y: integer;
 begin
 readln(N);
 for i:=1 to N do readln(D1[i],D2[i]);
 Max1:=0; Max2:=0;
 for i:=1 to N do if (D1[i]=D2[i])  and (Abs(D1[i]) > Max1) then Max1:= Abs(D1[i]);
 for i:=1 to N do if (D1[i]=-D2[i]) and (Abs(D2[i]) > Max2) then Max2:= Abs(D2[i]);
 S:=Max1*Max2;
 if (S=0) then writeln'Треугольник не существует')
 else writeln(S)
 end.
 
Но "сохранение всех исходных данных в массив" это дословно критерий на 2 балла. Получается, чтобы выполнить критерий на 3 балла нужно, чтобы он был на 2 балла?  
 
   Добавлено спустя 1 час 2 минуты 8 секунд:
Добавлено спустя 1 час 2 минуты 8 секунд:Последний гвоздь в крышку:
- Код: Выделить всё
- program project1;
 var
 a: array[1..$fffffff] of longint;
 x, i: integer;
 begin
 readln(x);
 for i := 1 to x do
 a[i] := i;
 writeln(a[x div 2]);
 readln;
 end.
Скриншот "снимок16" - занимаемая память при запуске приложения.
Таки зависит и плевать на объявление статического массива.
У вас нет необходимых прав для просмотра вложений в этом сообщении.