class Solution {
public:
int maxSubarraySumCircular(vector& a) {
int size=a.size();
int currsum=a[0];
int candidate1=a[0];
for(int i=1;i<size;i++)
{
currsum=max(currsum+a[i],a[i]);
candidate1=max(currsum,candidate1);
}
int cumsum=0;
for(int i=0;i<size;i++)
{
cumsum+=a[i];
}
for(int i=0;i<size;i++)
{
a[i]=(-a[i]);
}
currsum=a[0];
int candidate2=a[0];
for(int i=1;i<size;i++)
{
currsum=max(currsum+a[i],a[i]);
candidate2=max(currsum,candidate2);
}
int candidate2final;
candidate2final=cumsum-(-candidate2);
return max(candidate1,candidate2final);
}
};
It Doesnt Pass this Test Case
[-2,-3,-1]
Output 0
Expected -1