/* */ //#pragma comment(linker, "/STACK:16777216") #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define y0 sdkfaslhagaklsldk #define y1 aasdfasdfasdf #define yn askfhwqriuperikldjk #define j1 assdgsdgasghsf #define tm sdfjahlfasfh #define lr asgasgash #define norm asdfasdgasdgsd #define eps 1e-9 #define M_PI 3.141592653589793 #define bs 1000000007 #define bsize 256 using namespace std; const int INF = 1e9; const int N = 500031; vector >v; int n; long long a[N], b[N]; long long ans; int main(){ //freopen("fabro.in","r",stdin); //freopen("fabro.out","w",stdout); //freopen("F:/in.txt", "r", stdin); //freopen("F:/output.txt", "w", stdout); ios_base::sync_with_stdio(0); //cin.tie(0); cin >> n; for (int i = 1; i <= n; i++) cin >> a[i]; for (int i = 1; i <= n; i++) cin >> b[i]; for (int i = 1; i <= n; i++) a[i] += a[i - 1]; for (int i = 1; i <= n; i++) b[i] += b[i - 1]; for (int i = 0; i <= n; i++) { v.push_back(make_pair(a[i] - b[i], i)); } sort(v.begin(), v.end()); int block = 0; for (int i = 0; i < v.size(); i++) { if (i>0 && v[i].first != v[i - 1].first) block = i; ans = max(v[i].second - v[block].second,ans); } cout << ans << endl; cin.get(); cin.get(); return 0; }