Cod sursa(job #30156)

Utilizator alex_dincaDinca Alexandru-Nicolae - UPB alex_dinca Data 12 martie 2007 23:24:42
Problema Trapez Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.06 kb
const eps=0.0001;
type punct=record
     x,y:longint;
     end;
var v:array[1..1000] of punct;
    i,j,k,p,n,nr:integer;
    f:text;

procedure citire;
begin
assign(f,'trapez.in');reset(f);
readln(f,n);
for i:=1 to n do readln(f,v[i].x,v[i].y);
close(f);
end;

function panta(a,b:punct):real;
begin
panta:=(b.y-a.y)/(b.x-a.x);
end;

function vert(a,b:punct):boolean;
begin
vert:=abs(a.x-b.x)<eps;
end;

function para(a,b,c,d:punct):boolean;
begin
if vert(a,b)or(vert(c,d)) then
   if vert(a,b)and(vert(c,d)) then para:=true
   else para:=false
else if abs(panta(a,b)-panta(c,d))<eps then para:=true
     else para:=false;
end;

procedure caut;
begin
for i:=1 to n div 2 do
    for j:=1 to n div 2 do
        for k:=1 to n div 2 do
             for p:=1 to n div 2 do
                 if(i<>j)and(j<>k)and(k<>p)and(i<>p) then
                   if para(v[i],v[j],v[k],v[p])or
                      para(v[i],v[p],v[j],v[k]) then nr:=nr+1;
end;

begin
citire;
caut;
assign(f,'trapez.out');rewrite(f);
writeln(f,nr div 2);
close(f);
end.