int maxCircularSubArraySum(int *a,int n)
{
int ArraySum = 0;
int tempMinSum=0;
int tempMaxSum=0;
int minSum=INT_MAX;
int maxSum=INT_MIN;
for(int i=0;i<n;i++)
{
ArraySum+=a[i];
tempMaxSum=max(a[i],tempMaxSum+a[i]);
maxSum=max(maxSum,tempMaxSum);
tempMinSum=min(a[i],tempMinSum+a[i]);
minSum=min(minSum,tempMinSum);
}
if(ArraySum==minSum)
{
return maxSum;
}
else
{
return ArraySum-minSum;
}
}
