Pagini recente » Cod sursa (job #2201407) | Cod sursa (job #847564) | Borderou de evaluare (job #1036190) | Cod sursa (job #2702948) | Cod sursa (job #1147263)
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.