CF886F Symmetric Projections

题目描述

给定平面上的一个由 $n$ 个点组成的集合。 如果一条经过原点的直线满足:将给定的所有点投影到这条直线上后,得到的点的多重集是对称的,那么称这条直线是**好的**。 请你求出好的直线的数量。 多重集是允许出现多个相同元素的集合。 如果存在平面上的一点 $P$,使得一个点的多重集关于 $P$ 中心对称,那么称这个多重集是**对称的**。

输入格式

第一行包含一个整数 $n$($1\le n\le 2000$),表示点的数量。 接下来 $n$ 行,每行包含两个整数 $x_i,y_i$($-10^6\le x_i,y_i\le 10^6$),表示第 $i$ 个点的坐标。 保证任意两个点都不重合。

输出格式

如果有无穷多条好的直线,输出 `-1`。 否则,输出一个整数,表示好的直线的数量。

说明/提示

第一组样例的示意图如下。 ![](https://espresso.codeforces.com/eedc60313be8684bd6169b8b23f0f0afd92479a8.png) 第二组样例中,任意一条经过原点的直线都是好的。