// 2024 IUSB Programming Competition // Round 2 Problem 3 // New Array // Solution by Liguo Yu #include #include using namespace std; int solve(vector A, vector B) { int result = 1; int alen = 1, blen = 1, n = A.size(); if (n < 1) { return 0; } for (int i = 1; i < n; ++i) { int a = 1, b = 1; if (A[i] >= A[i - 1]) { a = alen + 1; } if (A[i] >= B[i - 1]) { a = max(a, blen + 1); } if (B[i] >= A[i - 1]) { b = alen + 1; } if (B[i] >= B[i - 1]) { b = max(b, blen + 1); } alen = a; blen = b; result = max(result, alen); result = max(result, blen); } return result; } int main() { int size; cin >> size; vector A(size); vector B(size); for (int i = 0; i < size; i++) { cin >> A[i]; } for (int i = 0; i < size; i++) { cin >> B[i]; } cout << solve(A, B) << endl; return 0; }