Pagini recente » Cod sursa (job #3249566) | Cod sursa (job #1384263) | Cod sursa (job #2671948) | Cod sursa (job #2536489) | Cod sursa (job #152505)
Cod sursa(job #152505)
type list=array[1..33000] of integer;
var a:list;
aux,i,j,n,k:integer;
nr:int64;
f,g:text;
ok:boolean;
procedure QuickSort(var A: List; Lo, Hi: Integer);
procedure Sort(l, r: Integer);
var
i, j, x, y: integer;
begin
i := l; j := r; x := a[(l+r) DIV 2];
repeat
while a[i] < x do i := i + 1;
while x < a[j] do j := j - 1;
if i <= j then
begin
y := a[i]; a[i] := a[j]; a[j] := y;
i := i + 1; j := j - 1;
end;
until i > j;
if l < j then Sort(l, j);
if i < r then Sort(i, r);
end;
begin {QuickSort};
Sort(Lo,Hi);
end;
begin
assign(f,'nrtri.in');reset(f);
assign(g,'nrtri.out');rewrite(g);
readln(f,n);
nr:=0;
for i:=1 to n do read(f,a[i]);
{repeat
ok:=true;
for i:=1 to n-1 do
if a[i]>a[i+1] then
begin
ok:=false;
aux:=a[i];
a[i]:=a[i+1];
a[i+1]:=aux;
end;
until ok=true;}
quicksort(a,1,n);
for i:=1 to n-2 do
for j:=i+1 to n-1 do
for k:=j+1 to n do
if (a[i]>0) and (a[j]<>0) and (a[k]<>0) and
(a[i]+a[j]>=a[k]) and (a[k]+a[j]>=a[i]) and (a[i]+a[k]>=a[j]) then inc(nr);
write(g,nr);
close(f);
close(g);
end.