x座標が互いに異なるN個の点のうち、2つの点を通る直線の傾きが「-1以上1以下である」ものの組がいくつあるか求める問題です。
提出
n = int(input())
xy=[list(map(int,input().split())) for _ in range(n)]
ans = 0
for i in range(n-1):
xi, yi = xy[i]
for j in range(i+1,n):
xj, yj = xy[j]
a = (yj-yi)/(xj-xi)
if -1 <= a <= 1:
ans += 1
print(ans)
傾きを求める問題なので、すべてのパターンの傾きを調べ、傾きが-1以上1以下であれば、「ans」に1を足します。
最後にansを出力します。
今回、「x座標が互いに異なる」という条件だったので問題ないですが、x座標が等しい場合、傾き計算で0で割ることになり、エラーが発生するため、工夫が必要になります。