直接暴力。。
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define N 204
#define Max 1000000000
#define Sma 0.0000001
struct _point{int x,y;}p[N];
double line[N*N];
int n;
double draw(_point x, _point y){
int a=x.x, b=x.y, c=y.x, d=y.y;
if(a==c) return Max;
return double(b-d)/(a-c);
}
double abss(double x){return (x<0)? -x:x;}
bool equal(double a, double b){
return abss(a-b)<Sma;
}
int main(){
scanf("%d",&n);
int ls=0;
for(int i=1;i<=n;i++) scanf("%d%d",&p[i].x, &p[i].y);
for(int i=1;i<=n;i++){
for(int j=i+1;j<=n;j++){
line[++ls]= draw(p[i], p[j]);
}
}
sort(line+1, line+ls+1);
int ans=1;
for(int i=2;i<=ls;i++) if(!equal(line[i], line[i-1])) ++ans;
printf("%d\n",ans);
return 0;
}