➤ Problem Link : 1082B. Vova and Trophies
✅ C++ Solution :
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
int main()
{
int n;
cin>>n;
map<int,int> mp;
int cnt=0;
char arr[n+1];
for(int i=1;i<=n;i++)
{
cin>>arr[i];
if(arr[i]=='G')
cnt++;
}
int i=1,j;
while(i<=n)
{
if(arr[i]=='S')
{
i++;
continue;
}
j=i;
while(i<=n && arr[i]=='G')
i++;
mp[j]=i;
}
int ans=0;
auto it2=mp.begin();
for(auto it=mp.begin();it!=mp.end();it++)
{
if(mp.size()>1)
ans=max(ans,1+(*it).second-(*it).first);
else
ans=max(ans,(*it).second-(*it).first);
it2=it;
it2++;
if(it2==mp.end())
break;
if((*it2).first==(*it).second+1)
{
int len1=(*it).second-(*it).first;
int len2=(*it2).second-(*it2).first;
if(len1+len2<cnt)
ans=max(ans,len1+len2+1);
else
ans=max(ans,len1+len2);
}
}
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!!
