CF183B Zoo
题目描述
格子王国的动物园用一个无限大的网格表示。动物园有 $n$ 个观测望远镜,均位于 $OX$ 轴上。对于每一个 $1 \leq i \leq n$,有一个望远镜位于坐标点 $(i, 0)$。
动物园中有 $m$ 只火烈鸟,它们都位于横纵坐标均为正的点上。火烈鸟目前都在睡觉,可以认为它们不会移动。
为了更好地观察火烈鸟,每个望远镜都可以独立转动到任意角度(不必为整数角度)。然后,若某只火烈鸟恰好在经过该望远镜且与其当前朝向平行的直线上,那么该望远镜就可以看到这只火烈鸟。换句话说,你可以为每个望远镜指定任意一条经过该望远镜的直线方向,并且望远镜将能看到所有位于该直线上的火烈鸟。
今天,著名的 Codeforces 幼儿园的一些小朋友来动物园进行实地考察。他们的老师希望为每个望远镜设置一个角度,使得每个望远镜最多能看到的火烈鸟数量最大,并关注所有望远镜能看到的火烈鸟数量之和。请帮助老师求出这个和的最大值。
输入格式
第一行包含两个用空格分隔的整数 $n$ 和 $m$($1 \leq n \leq 10^{6}, 1 \leq m \leq 250$),表示望远镜的数量和火烈鸟的数量。
接下来 $m$ 行,每行包含两个用空格分隔的整数 $x_i$ 和 $y_i$($1 \leq x_i, y_i \leq 10^9$),表示第 $i$ 只火烈鸟位于 $(x_i, y_i)$ 点。
所有火烈鸟的位置互不相同。
输出格式
输出一个整数,表示所有望远镜最多能看到的火烈鸟的总数。
说明/提示
下图展示了示例测试用例的答案。

由 ChatGPT 5 翻译