Pagini recente » Cod sursa (job #2263390) | Cod sursa (job #937384) | Cod sursa (job #3168189) | Cod sursa (job #2138239) | Cod sursa (job #84763)
Cod sursa(job #84763)
var f1,f2:text;
i,j,n,g,nr,z,nrnew,xg,yg:longint;
x,y:array[1..1000000] of longint;
x1,x2:int64;
a:array[1..1000000] of double;
procedure pozitie(var m:longint; p,u:longint);
var i,j,di,dj,aux:longint;
aux2:double;
begin
di:=0;
dj:=-1;
i:=p;
j:=u;
while i<j do
begin
if a[i]>a[j] then
begin
aux:=di;
di:=-dj;
dj:=-aux;
aux2:=a[i];
a[i]:=a[j];
a[j]:=aux2;
end;
i:=i+di;
j:=j+dj;
end;
m:=i;
end;
procedure quick(p,u:longint);
var m:longint;
begin
if p<u then
begin
pozitie(m,p,u);
quick(p,m-1);
quick(m+1,u);
end;
end;
begin
assign(f1,'trapez.in');
reset(f1);
assign(f2,'trapez.out');
rewrite(f2);
read(f1,n);
for i:=1 to n do
read(f1,x[i],y[i]);
g:=0;
for i:=1 to n-1 do
for j:=i+1 to n do
begin
inc(g);
xg:=x[i]-x[j];
yg:=y[i]-y[j];
a[g]:=yg/xg;
end;
quick(1,g);
for i:=2 to g do
begin
if a[i]=a[i-1] then inc(nrnew);
if a[i]>a[i-1] then
begin
z:=nrnew;
nr:=nr+(z*(z+1)) div 2;
nrnew:=0;
end;
end;
writeln(f2,nr);
close(f1);
close(f2);
end.