Pagini recente » Cod sursa (job #588018) | Cod sursa (job #2122320) | Cod sursa (job #2475523) | Cod sursa (job #680579) | Cod sursa (job #113298)
Cod sursa(job #113298)
type punct=record
x,y:longint;
end;
var fi,fo:text;
n,i,j:longint;
coord:array[1..1010]of punct;
ct:longint;
valori:array[1..1000000]of extended;
function comb(n:integer):longint;
begin
comb:=n*(n-1) shr 1;
end;
procedure parc;
var i,j,ct2,cont,rez:longint;
begin
ct2:=1; cont:=0;
valori[ct+1]:=-2000000000;
for i:=2 to ct+1 do
if valori[i]=valori[i-1] then inc(ct2)
else
begin
rez:=comb(ct2);
inc(cont,rez);
ct2:=1;
end;
writeln(fo,cont);
end;
function part(st,dr:longint):longint;
var i,j,s:longint;
aux:extended;
begin
i:=st; j:=dr; s:=-1;
while i<j do
begin
if valori[i]>valori[j] then
begin
aux:=valori[i];
valori[i]:=valori[j];
valori[j]:=aux;
s:=-s;
end;
if s=1 then inc(i)
else dec(j);
end;
part:=i;
end;
procedure qsort(st,dr:longint);
var p:longint;
begin
if st<dr then
begin
p:=part(st,dr);
qsort(st,p-1);
qsort(p+1,dr);
end;
end;
procedure solv_panta;
var i,j:longint;
begin
ct:=0;
for i:=1 to n-1 do
for j:=i+1 to n do
begin
inc(ct);
if (coord[i].y-coord[j].y=0) then valori[ct]:=2000000000
else valori[ct]:=(coord[i].x-coord[j].x)/(coord[i].y-coord[j].y);
end;
end;
begin
assign(fi,'trapez.in'); reset(fi);
assign(fo,'trapez.out'); rewrite(fo);
read(fi,n);
for i:=1 to n do
read(fi,coord[i].x,coord[i].y);
solv_panta;
qsort(1,ct);
parc;
close(fi);
close(fo);
end.