Из сложностей может возникнуть только генерация случайного значения. Функция <em>random(x)</em> возвращает случайное число от <em>0</em> до<em> x-1</em>. Когда функция возвращает <em>0 </em>(минимальное значение), нам нужно, чтобы оно превратилось в <em>20</em>. Будем отнимать <em>20 </em>от значения функции <em>random(x)</em>:
<em>a[i] := random(x) - 20;</em>
Самое большое число, которое мы хотим получить - <em>60</em>. Так как мы отнимаем <em>20</em>, самое большое число, которое должна вернуть функция <em>random(x)</em> равно <em>80</em>. Значит, <em>x </em>равен <em>81</em>:
<em>a[i] := random(81) - 20;</em>
Кстати, произведение может получаться слишком большим, а тип данных <em>integer </em>может хранить числа не больше <em>32767</em>. Поэтому мы должны хранить произведение как <em>longint</em>. Оно позволяет хранить числа до
<h3>Код</h3>
var
a: array[1..1000] of integer;
i, n: integer;
ans: longint;
begin
read(n);
ans:=1;
for i:=1 to n do
begin
a[i]:=random(81)-20;
if a[i] > 20 then ans:=ans*a[i];
end;
writeln(ans);
end.