Pagini recente » Cod sursa (job #1668320) | Cod sursa (job #2733772) | Cod sursa (job #2589244) | Cod sursa (job #1552042) | Cod sursa (job #16659)
Cod sursa(job #16659)
var f1,f2:text; i,j,nr,g,n,m,x,li,ls:longint; a:array[1..800] of integer;
procedure pozitie(var m:longint; p,u:longint);
var i,j,di,dj,aux:longint;
begin
di:=0;
dj:=-1;
i:=p;
j:=u;
while i<j do
begin
if a[i]>a[j] then
begin
aux:=di;
di:=-dj;
dj:=-aux;
aux:=a[i];
a[i]:=a[j];
a[j]:=aux;
end;
i:=i+di;
j:=j+dj;
end;
m:=i;
end;
procedure quick(p,u:longint);
var m:longint;
begin
if p<u then
begin
pozitie(m,p,u);
quick(p,m-1);
quick(m+1,u);
end;
end;
procedure search(li,ls:integer);
begin
m:=(li+ls) div 2;
if (x>=a[m])and((x<a[m+1])or(m=n)) then nr:=nr+m-j
else if li<ls then if x<a[m] then search(li,m-1)
else search(m+1,ls);
end;
begin
assign(f1,'nrtri.in');
reset(f1);
assign(f2,'nrtri.out');
rewrite(f2);
read(f1,n);
for i:=1 to n do
read(f1,a[i]);
quick(1,n);
for i:=1 to n-2 do
for j:=i+1 to n-1 do begin
x:=a[i]+a[j];
search(j,n);
end;
write(f2,nr);
close(f1);
close(f2);
end.