最佳射击
题号:NC21800
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld

题目描述

平面直角坐标系上有一些点,你可以进行0或者若干次操作
每次操作可以将所有的点往某个方向平移
也可以将所有的点绕着(0,0)旋转任意角度

你射击一枪能够射到x轴与y轴上的所有点,你希望经过若干次操作后,射击一枪能击中尽可能多的点,求最多可以击中几个点

输入描述:

第一行输入一个整数n (1 ≤ n ≤ 50)
第二行输入n个整数表示x坐标
第三行输入n个整数表示y坐标
(坐标的范围在[-1000000,1000000]之间)

输出描述:

输出一个整数
示例1

输入

复制
2
0 5
0 5

输出

复制
2
示例2

输入

复制
5
0 -1 1 1 -1
0 -1 -1 1 1

输出

复制
5
示例3

输入

复制
9
0 -3 3 3 -3 0 0 3 -3
0 -3 -3 3 3 3 -3 0 0

输出

复制
5

备注:

子任务1:n <= 10
子任务2:n <= 20
子任务3:无限制