455A. Boredom - Codeforces Solution C++

  Problem Link : 455A. Boredom 


✅ C++ Solution :

 
#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n;
	cin>>n;
	int arr[n+1];
	long long int dp[n+1];
	for(int i=1;i<=n;i++)
		cin>>arr[i];
	arr[0]=0;
	dp[0]=0;
	sort(arr,arr+n+1);
	long long int prevSum=0;
	long long int ans=0;
	for(int i=1;i<=n;i++)
	{
		if(arr[i]==arr[i-1])
			dp[i]=arr[i]+dp[i-1];
		else if(arr[i]>arr[i-1]+1)
		{
		    dp[i]=arr[i]+max(prevSum,dp[i-1]);
		    prevSum=max(prevSum,dp[i-1]);
		}
		else
		{
			dp[i]=arr[i]+prevSum;
			prevSum=max(prevSum,dp[i-1]);
		}
//		cout<<i<<" "<<arr[i]<<" "<<dp[i]<<endl;
		ans=max(ans,dp[i]);
	}
	cout<<ans;

}

 

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!!