ABC224C - Triangle?

全探索して,3点が一直線上になければ+1すれば良い.

一直線上にあることは,$x$が小さい順に点を$P_{1}, P_{2}, P_{3}$として,条件【「点$P_{1}$と点$P_{2}$の傾き」=「点$P_{1}$と点$P_{3}$の傾き」】を満たすかどうかで判定できる.

分数だと分母がゼロのときなど面倒なので,分母を払った条件式にする.

N = int(input())
P = sorted([list(map(int, input().split())) for _ in range(N)])

ans = 0
for i in range(N):
  for j in range(i + 1, N):
    for k in range(j + 1, N):
      x1, y1 = P[i][0], P[i][1]
      x2, y2 = P[j][0], P[j][1]
      x3, y3 = P[k][0], P[k][1]
      if (y2 - y1) * (x3 - x1) ==  (x2 - x1) * (y3 - y1):
        continue
      ans += 1
print(ans)