Cod sursa(job #61609)

Utilizator vanila0406Ionescu Victor vanila0406 Data 20 mai 2007 00:07:13
Problema Patrate 3 Scor 45
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.66 kb
program patrate3;
type punct=record
        x,y:real;
end;
var f,g:text;
      n:longint;
      v:array[1..1001] of punct;


procedure iofile;
var i:longint;
        x,y:real;
begin
        assign(f,'patrate3.in');
        reset(f);
        assign(g,'patrate3.out');
        rewrite(g);
        readln(f,n);
        for i:=1 to n do
                begin
                        readln(f,x,y);
                        v[i].x:=round(x*10000);
                        v[i].y:=round(y*10000);
                end;
        close(f);
end;

function dist(i,j:longint):real;
begin
        dist:=sqr(v[i].x-v[j].x)+sqr(v[i].y-v[j].y);
end;


procedure prel;
var nr,i,j,k,l:longint;
begin
        nr:=0;
        for i:=1 to n-3 do
                for j:=i+1 to n-2 do
                        for k:=j+1 to n-1 do
                                if ((dist(i,j)+dist(i,k)=dist(j,k))and(dist(i,j)=dist(i,k)))or
                                ((dist(i,j)+dist(j,k)=dist(i,k))and(dist(i,j)=dist(j,k))) or
                                ((dist(i,k)+dist(j,k)=dist(i,j))and(dist(i,k)=dist(j,k)))then
                                for l:=k+1 to n do
                                        if ((dist(l,i)=dist(l,k))and(dist(l,i)=dist(i,j))and(dist(i,j)=dist(j,k)))or
                                           ((dist(l,j)=dist(l,k))and(dist(l,j)=dist(i,j))and(dist(i,j)=dist(i,k)))or
                                           ((dist(l,i)=dist(l,j))and(dist(l,i)=dist(i,k))and(dist(i,k)=dist(j,k)))then
                                                inc(nr);
        writeln(g,nr);
        close(g);
end;


begin
        iofile;
        prel;
end.