Cod sursa(job #1131861)

Utilizator azkabancont-vechi azkaban Data 1 martie 2014 19:52:01
Problema Numarare triunghiuri Scor 90
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.41 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[((right+left) div 2)];
         repeat
          while V[i]<pivot do inc(i);
          while V[j]>pivot do dec(j);
           if i<=j then begin
                         swap(V[i],V[j]);
                         inc(i);
                         dec(j);
                        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.