//Author: Bishal Sarang #include using namespace std; //typedefs typedef long long ll; typedef unsigned long long ull; typedef long double ld; typedef vector vi; typedef vector vll; typedef vector vull; typedef pair pii; typedef pair pll; typedef vector vpii; typedef map mii; typedef priority_queue > pq; typedef tuple tp; //Constants const int INF = (int)2 * 1e9; const ll MOD = 1000000007; const long double PI = 3.1415926; const long double EPS = 1e-6; #define all(x) (x).begin(), (x).end() #define rall(x) (x).rbegin(), (x).rend() #define what(x) cerr << #x << " => " << x << endl; #define print_r(x) for(auto i = 0; i < x.size(); i++) what(x[i]); #define print_grid(x) for(auto i = 0; i < x.size(); i++){for(auto j = 0; j < x[0].size(); j++){cout << x[i][j];}cout << endl;} #define gridM(type, n, m) vector> grid(n, vector(m)) template vector prefix_sum(vector nums){vector pre_sum(nums.size());partial_sum(nums.begin(), nums.end(), pre_sum.begin());return pre_sum;} vector split(string s, char sep){int prev_index = 0;int i = 0;vector words;for(i = 0; i < s.size(); i++){if(s[i] == sep){words.push_back(s.substr(prev_index, i - prev_index));prev_index = i + 1;}}words.push_back(s.substr(prev_index, (s.size() - prev_index )));return words;} void read(){ //stime = clock(); #ifdef DEBUG freopen("in.txt", "r", stdin); #endif // DEBUG cin.sync_with_stdio(false); cin.tie(0); } int main(){ read(); int n; cin >> n; vector a(n), b(n); for(int i = 0; i < n; i++){ cin >> a[i]; //cout << a[i] << endl; } for(int i = 0; i < n; i++){ cin >> b[i]; } for(int i = 1; i < n; i++){ a[i] = a[i] + a[i - 1]; b[i] = b[i] + b[i - 1]; } int ans = 0; for(int l = 0; l < n; l++){ for(int r = l; r < n; r++){ cout << l << " to " << r << " "; if(l == r){ if(a[l] == b[l]) ans = max(ans, l + 1); //cout << a[r] ; } else if(l - 1 >= 0){ if(a[r] - a[l - 1] == b[r] - b[l - 1]) ans = max(ans, r - l + 1); //cout << a[r] << " - " << a[l - 1]; } //cout << "\n"; } } cout << ans; return 0; }