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