Cod sursa(job #1640682)

Utilizator DoubleNyNinicu Cristian DoubleNy Data 8 martie 2016 18:52:11
Problema Numarare triunghiuri Scor 70
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.25 kb
type
    tabel=array[1..810] of longint;
var A,B,C,N,i,j,m,k:longint;
    rezerva:tabel;

procedure quick(var arr:tabel; left,right:integer);
var pivot,i,j,x:integer;
begin
     i:=left;
     j:=right;
     pivot:=arr[(left+right) div 2];
     while i<=j do
     begin
          while arr[i]  < pivot do inc(i);
          while arr[j] > pivot do dec(j);
          if i<=j then
          begin
              x:=arr[i];
              arr[i]:=arr[j];
              arr[j]:=x;
              inc(i);
              dec(j);
          end;
     end;
     if left<j then
     quick(arr,left,j);
     if i<right then
     quick(arr,i,right);
end;

Begin
      assign(input,'nrtri.in'); reset(input);
      assign(output,'nrtri.out'); rewrite(output);
      readln(input,n);
     for i:=1 to n do read(input,rezerva[i]);
      quick(rezerva,1,n);
   //   for i:=1 to n do write(rezerva[i],' ');
      m:=0;
       for i:=1 to n-2 do
        for j:=i+1 to n-1 do
         for k:=j+1 to n do
         begin
              A:=rezerva[i]; B:=rezerva[j]; C:=rezerva[k];
              if (A+B>=C) and (A+C>=B) and (B+C>=A) then inc(m)
              else break
         end;
      write(output,m);
      close(input);
      close(output);
End.