For this Question: After sitting idle in home for around 2 months, Jiraya has finally come up with a super interesting problem on arrays (or maybe!). 
You are given an array A of N integers. You need to choose an index i from 1 to N (inclusive) and divide this array into 2 parts, then find the maximum sum of contiguous subarray in both the parts of arrays and add the obtained values from the two arrays. 
What is the maximum sum that you can obtain?

Note: The element at index i is not a part of any of the generated arrays, choosing an empty subarray is allowed, one of the generated array is empty if i=1 or i=N (its maximum subarray sum will be 0).

See sample for better understanding.The first line of input contains a single integer N.
The second line of input contains N integers A[1], A[2],. , A[N]

Constraints
2 <= N <= 200000
-1000000 <= A[i] <= 1000000Output a single integer, the answer to the above problem.
(The answer may not fit into integer data type)Sample Input
6
-5 -1 4 -3 5 -4

Sample Output
9

Explanation: We choose i = 4. The two arrays are [-5, -1, 4] and [5, -4]. The maximum sum of contiguous subarrays are 4 and 5 respectively. Therefore, the answer is 4 + 5 = 9.

Sample Input
5
-1 -1 -1 -1 -1

Sample Output
0

Explanation: We choose i = 3. The two arrays are [-1, -1] and [-1, -1]. The maximum sum of contiguous subarrays are 0 and 0 respectively (empty subarrays). Therefore, the answer is 0 + 0 = 0., I have written this Solution Code: #include <bits/stdc++.h>
using namespace std;
#define sd(x) scanf("%d", &x)
#define sz(v) (int) v.size()
#define pr(v) For(i, 0, sz(v)) {cout<<v[i]<<" ";} cout<<endl;
#define slld(x) scanf("%lld", &x)
#define all(x) x.begin(), x.end()
#define For(i, st, en) for(ll i=st; i<en; i++)
#define tr(x) for(auto it=x.begin(); it!=x.end(); it++)
#define fast std::ios::sync_with_stdio(false);cin.tie(NULL);
#define pb push_back
#define ll long long
#define int long long
#define ld long double
#define mp make_pair
#define F first
#define S second
typedef pair<int, int> pii;
typedef vector<int> vi;
#define pi 3.141592653589793238
#define MOD 1000000007
#define INF 1000000000000000007LL


const int N = 200005;
 
// it's swapnil07 ;)
 
#ifdef SWAPNIL07
#define trace(...) __f(#__VA_ARGS__, __VA_ARGS__)
template <typename Arg1>
void __f(const char* name, Arg1&& arg1){
    cout << name << " : " << arg1 << endl;
}
template <typename Arg1, typename... Args>
void __f(const char* names, Arg1&& arg1, Args&&... args){
    const char* comma = strchr(names + 1, ',');cout.write(names, comma - names) << " : " << arg1<<" | ";__f(comma+1, args...);
}
int begtime = clock();
#define end_routine() cout << "\n\nTime elapsed: " << (clock() - begtime)*1000/CLOCKS_PER_SEC << " ms\n\n";
#else
#define endl '\n'
#define trace(...)
#define end_routine()
#endif


vector<int> a;
int n;

vector<int> kadane(){
    int cur = 0;
    int mx = 0;
    vector<int> vect(n);
    for(int i=0; i<n; i++){
        cur += a[i];
        mx = max(mx, cur);
        if(cur < 0)
            cur = 0;
        vect[i]=mx;
    }
    return vect;
}


signed main()
{
    fast
    #ifdef SWAPNIL07
        freopen("input.txt","r",stdin);
        freopen("output.txt","w",stdout);
    #endif
    cin>>n;
    for(int i=0; i<n; i++){
        int x; cin>>x;
        a.pb(x);
    }
    vector<int> v1 = kadane();
    reverse(all(a));
    vector<int> v2 = kadane();
    reverse(all(v2));
    int ans = 0;
    For(i, 0, n){
        if(i>0 && i<n-1)
            ans = max(ans, v1[i-1]+v2[i+1]);
        else if(i==0)
            ans = max(ans, v2[i+1]);
        else
            ans = max(ans, v1[i-1]);
    }
    cout<<ans;
    return 0;
}

, In this Programming Language: C++, Now tell me if this Code is compilable or not?