選んだ3点が一直線上になる組み合わせを
数えて全体の組み合わせから引けばいい。
abc224c.py
def solv():
N = int(input())
lis = []
for _ in range(N):
x,y = map(int,input().split())
lis.append([x,y])
from itertools import combinations
cnt = 0
for a,b,c in combinations(range(N),3):
if (lis[a][1]-lis[b][1])*(lis[a][0]-lis[c][0]) == (lis[a][1]-lis[c][1])*(lis[a][0]-lis[b][0]):
cnt += 1
print( (N*(N-1)*(N-2))//6 - cnt)
solv()
計算量は 10^7 オーダーになるので、
def でまとめて、pypy で提出すればいい