Pagini recente » Cod sursa (job #2105708) | Cod sursa (job #855772) | Cod sursa (job #2125366) | Cod sursa (job #1201820) | Cod sursa (job #874877)
Cod sursa(job #874877)
var bufin:array[1..65000]of byte;
n,i,j,t,cont:longint;
a:array[1..801]of longint;
iesi:boolean;
function cautare_binara(u,x:longint):longint;
var v,m:longint;
ok:boolean;
begin
v := n ; ok := false;
repeat
m := (v-u)div 2 + u;
if a[m] = x then
begin
cautare_binara := m;
ok := true;
u := v + 30;
end
else
begin
if x > a[m] then
begin
u := m+1;
end
else
begin
v := m-1;
end;
end;
until u > v ;
if ok = false then cautare_binara := v;
end;
begin
assign(input,'nrtri.in'); reset(input);
assign(output,'nrtri.out'); rewrite(output);
settextbuf(input,bufin);
readln(n); cont := 0;
for i := 1 to n do read(a[i]);
repeat
iesi := true;
for i := 1 to n-1 do
if a[i] > a[i+1] then
begin
t := a[i];
a[i] := a[i+1];
a[i+1] := t;
iesi := false;
end;
until iesi = true;
for i := 1 to n - 2 do
for j := i+1 to n-1 do
begin
cont := cont + cautare_binara(j+1,a[i]+a[j]) - j ;
end;
write(cont);
close(input);
close(output);
end.