Для данной задачи, мы применим алгоритм Кадане, и мы также найдем подмножество, которое будет иметь максимальное отрицательное значение. Если максимальное отрицательное значение будет удалено, это даст сумму оставшегося массива в круговом порядке.больше максимальной суммы, тогда максимальная сумма будет суммой в круговом порядке.Сложность алгоритма O (n).
Eg:- arr[i]={10,-3,-4,7,6,5,-4,-1}
Ans: max_sum=7+6+5+(-4)+(-1)+10
Removed_set={-3,-4}
int find_maxsum(int arr[],int n)
{
int i=0;
int total=0;
int maxa=0;
int mini=0;
int min_sum=0;
int max_sum=0;
while(i<n)
{
maxa=maxa+arr[i];
total=total+arr[i];
mini=mini+arr[i];
if(maxa>max_sum)
max_sum=maxa;
if(mini<min_sum)
min_sum=mini;
if(maxa<0)
maxa=0;
if(mini>=0)
mini=0;
}
if(total-min_sum>max_sum)
max_sum=total-min_sum;
return max_sum;
}