ronith
10/12/2018 - 4:39 AM

Maximum Subarray and Subsequence

//https://www.hackerrank.com/challenges/maxsubarray
#include <bits/stdc++.h>
using namespace std;

void maxSubarray(vector<int> arr) {
    long n= arr.size();

    //Kadane's algo for maxSubarray
    int maxi=arr[0],curr=arr[0],m= arr[0];
    for (long i=1;i<n;i++) {
        curr= max(arr[i], curr+arr[i]);
        maxi= max(maxi,curr);
        m= max(m+arr[i], max(arr[i],m));
    }
    cout<< maxi<< " "<<m<< "\n";
}

int main() {
    int t;
    cin>>t;
    while(t-->0){
        long n;
        cin>>n;
        vector<int> arr(n);
        for (long i=0;i<n;i++)
            cin>>arr[i];

        maxSubarray(arr);
}
}