Cod sursa(job #1131860)

Utilizator azkabancont-vechi azkaban Data 1 martie 2014 19:49:39
Problema Numarare triunghiuri Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.38 kb
Program triunghiuri;

var V : array [1..900] of longint;
    n,i,l,j,m : longint;

procedure swap ( var x,y : longint);
   var aux : longint;
     begin
       aux:=x;
       x:=y;
       y:=aux;

     end;

procedure qsort( left, right : longint);
 var i,j,pivot : longint;
   begin
     i:=left; j:=right; pivot:=V[(i+j)div 2];
     repeat
          while i<pivot do i:=i+1;
          while j>pivot do j:=j-1;
          if i<=j then begin
                            swap(V[i],V[j]);
                            i:=i+1;
                            j:=j-1;
                       end;
     until i>j;
     if i<right then qsort(i,right);
     if j>left then qsort(left,j);
   end;











begin
  assign(input,'nrtri.in'); reset(input);
  assign(output,'nrtri.out'); rewrite(output);
  readln(n); l:=0;
  for i:=1 to n do read(V[i]);

  qsort(1,n);













   for i:=1 to n-2 do
      for j:=i+1 to n-1 do begin
                                 m:=j+1;
                                 while (V[m]<=(V[i]+V[j])) and (m<=n) do begin
                                                                  l:=l+1;
                                                                  m:=m+1;
                                                            end;
                           end;

  writeln(l);
  close(input);
  close(output);
end.