#include #include #include #include using namespace std; const int MAX_N = 100000 + 1; long long A[MAX_N]; long long B[MAX_N]; int main() { /// ifstream cin("data.in"); int N; cin >> N; for (int i = 1; i <= N; ++i) cin >> A[i]; for (int j = 1; j <= N; ++j) cin >> B[j]; partial_sum(A + 1, A + N + 1, A + 1); partial_sum(B + 1, B + N + 1, B + 1); unordered_map UMap; UMap.insert({0, 0}); int best = 0; for (int i = 1; i <= N; ++i) { long long d = A[i] - B[i]; auto it = UMap.find(d); if (it != UMap.end()) { best = max(best, i - it->second); } else UMap.insert({d, i}); } cout << best << endl; return 0; }