资源限制
内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s
问题描述
给定2维平面上n个整点的坐标,一条直线最多能过几个点?
输入格式
第一行一个整数n表示点的个数
以下n行,每行2个整数分别表示每个点的x,y坐标。
输出格式
输出一个整数表示答案。
样例输入
5
0 0
1 1
2 2
0 3
2 3
样例输出
3
数据规模和约定
n<=1500,数据保证不会存在2个相同的点。
点坐标在int范围内
代码如下:
n=int(input())
b = 0
a=[list(map(int,input().split()))for i in range(n)]
for i in range(1,n):
count=0
x0 = a[i][0] - a[i-1][0]
y0 = a[i][1] - a[i-1][1]
for j in range(n):
if x0 * (a[i][1] - a[j][1]) == y0 * (a[i][0] - a[j][0]):
count += 1
b = max(b, count)
print(b)