Thông tin
var A:Array[1..100001] of longint; i,n,max:longint; //fi,fo:text; Procedure SX(l,r:longint); var i,j,w,x:longint; Begin x:=A[(l+r) div 2]; i:=l; j:=r; While i<=j do Begin While A[i]>x do inc(i); While A[j]<x do dec(j); if i<=j then Begin w:=A[i]; A[i]:=A[j]; A[j]:=w; inc(i); dec(j); end; end; if i<r then SX(i,r); if j>l then SX(l,j); end; Begin //assign(fi,'MMAX.INP'); reset(fi); //assign(fo,'MMAX.OUT'); rewrite(fo); readln(n); max:=-2000000000; for i:=1 to n do read(A[i]); SX(1,n); if A[1]A[2]>=max then max:=A[1]A[2]; if A[n]A[n-1]>=max then max:=A[n]A[n-1]; if A[1]A[2]A[3]>=max then max:=A[1]A[2]A[3]; if A[n]A[n-1]A[1]>=max then max:=A[n]A[n-1]A[1]; write(max); //close(fi); close(fo); end.