问题描述
平面上有n个点,求出用这些点可以构成的三角形数。
输入
第一行一个整数n。
接下来n行,每行两个整数,表示点的坐标。
输出
输出仅一个整数,表示所求答案。
样例输入
5
0 0
1 1
1 -1
-1 -1
-1 1
样例输出
8
算法讨论
枚举第一个点,对于剩下的点按照和这个点连线的斜率排序一下,把相同斜率的线段放在一起,可以算出选到两条相同斜率的线段方案数,即不能构成三角形的方案数,然后统计答案。注意处理斜率不存在的情况。
#include <cstdio>
#include <algorithm>
#define MAX_N 3006
#define maxlongint 0x7f7f7f7f
using namespace std;
int a[MAX_N][