生成所有的斜率,注意全部的0处理成一种(一分之零),全部的斜率不存在处理成零分之一。从n*n个分数里,找出不同的个数(明明的随机数…),开个二维数组存一下分子分母是否出现过,着玩意能叫哈希吗?
X的范围是-1000..1000,所以deltax可能是-2000..2000,数组开小RE了一次。

Code/**************************************************************
Problem: 1610
User: lijianlin1995
Language: Pascal
Result: Accepted
Time:64 ms
Memory:15860 kb
****************************************************************/
program line;
var n,i,j,deltax,deltay,tmp,ans:longint;
map:array[-2000..2000,-2000..2000] of boolean;
x,y:array[1..200] of longint;
function GCD(a,b:longint):longint;
var r:longint;
begin
repeat
r:=a mod b;
a:=b;b:=r;
until r=0;
GCd:=a;
end;
begin
readln(n);
for i:=1 to n do read(X[i],Y[i]);
for i:=1 to n do
for j:=1 to n do
if i<>j then begin
deltaX:=X[i]-X[j];
deltaY:=Y[i]-Y[j];
if deltaX=0 then deltaY:=1 else
if deltaY=0 then deltaX:=1 else
begin
tmp:=GCD(deltaX,deltaY);
deltaX:=deltaX div tmp;
deltaY:=deltaY div tmp;
end;
if not map[deltaX][deltaY]
then begin
map[deltaX][deltaY]:=true;
inc(Ans);end;end;
writeln(Ans);
end.