https://codeforces.com/contest/1133/problem/D
#include<algorithm>
#include <iostream>
#include <sstream>
#include <cstring>
#include <cstdlib>
#include <string>
#include <vector>
#include <cstdio>
#include <math.h>
#include <queue>
#include <stack>
#include <set>
#include <map>
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
#define rep(i,a,n) for (int i = a; i < n; ++i)
#define per(i,a,n) for (int i = n-1; i >= a; --i)
#define SZ(x) ((int)x.size())
using namespace std;
//head
#define maxl 200005
int a[maxl], b[maxl];
//都为0
//近似相等的情况
int main()
{
int n; cin >> n;
for (int i = 0; i < n; i++)
cin >> a[i];
long double m;
map<long double, int> mp;
int maxn = 0;
int w = 0;
for (int j = 0; j < n; j++)
{
cin >> b[j];
if (a[j])
{
m = -((long double)b[j] / a[j]);//0.0 细心
if (m == -0)m = 0;
mp[m]++;
maxn = max(maxn, mp[m]);
}
if (a[j] == 0 && b[j] == 0)w++;
}
cout << maxn + w << endl;
return 0;
}