Cod sursa(job #1147263)

Utilizator braisaMiron Raisa braisa Data 19 martie 2014 18:22:02
Problema Trapez Scor 20
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.47 kb
Program puncte;
const INF=9999999999;
type coordonata = record
                        x : int64;
                        y : int64;
                  end;
function panta (x,y,x1,y1 : longint) : real;
   begin
         if (x1-x<>0) then panta:=(y1-y)/(x1-x)
         else panta:=INF;
   end;

var M : array [1..10100,1..10100] of real;
    Viz : array [1..10100,1..10100] of 0..1;
    K :array [1..10100] of coordonata;
    i,n,j,l,p,t :longint;
    b1,b2 : array[0..1 shl 17] of char;

begin
    assign(input,'trapez.in'); settextbuf(input,b1); reset(input);
    assign(output,'trapez.out'); settextbuf(output,b2); rewrite(output);
    readln(n); t:=0;
    for i:=1 to n do readln(K[i].x,K[i].y);

    for i:=1 to n do
      for j:=1 to n do
                 M[i,j]:=panta(k[i].x,k[i].y,k[j].x,k[j].y);

  for i:=1 to n do
    for j:=1 to n do viz[i,j]:=0;



    for i:=1 to n do
      for j:=i+1 to n do begin
       if (viz[i,j]=0 )and (M[i,j]<>INF) then begin
          viz[i,j]:=1;
                for l:=1 to n do
                      for p:=i+1 to n do

     if (M[l,p]=M[i,j]) and
           (viz[l,p]=0) and
                 (i<>l) and
                 (i<>p) and
                 (j<>l) and
                 (j<>p) then begin
                             t:=t+1;
                             viz[l,p]:=1;
                        end;      end;
                       end;


    writeln(t div 2);
    close(output);
    close(input);
end.