➤  Problem Link : 331A2. Oh Sweet Beaverette  
✅ C++ Solution :
 
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
int main()
{
	int n;
	cin>>n;
	unordered_map<ll,int> right;
	ll arr[n+1];
	ll poscum[n+1];
	poscum[0]=0;
	for(int i=1;i<=n;i++)
	{
		cin>>arr[i];
		right[arr[i]]=i;
		if(arr[i]>0)
			poscum[i]=arr[i]+poscum[i-1];
		else
			poscum[i]=poscum[i-1];
	}
	ll diff=LONG_MIN,li=-1,ri=-1;
	ll currdiff;
	for(int i=1;i<=n;i++)
	{
		int ind = right[arr[i]];
		if(ind <= i)
			continue;
		currdiff=poscum[ind]-poscum[i-1];
		if(arr[i]<0)
			currdiff+=arr[i]*2;
		if(currdiff > diff)
		{
			diff=currdiff;
			li=i;
			ri=ind;
		}
	}
	vector<ll> cut;
	ll ans=0;
	for(int i=1;i<=n;i++)
	{
		if(i<li || i>ri)
			cut.push_back(i);
		else if(i>li && i < ri && arr[i]<0)
			cut.push_back(i);
		else
			ans+=arr[i];
	}
	cout<<ans<<" "<<cut.size()<<"\n";
	for(auto it : cut)
		cout<<it<<" ";
}
Thank you for your patience reading. If you enjoyed this post, I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Whatsapp or Facebook.
😇Happy Learning!!
