AcWing 4261. 孤独的照片
原题链接
简单
作者:
geats兔
,
2024-04-07 22:10:10
,
所有人可见
,
阅读 1
C++ 代码
#include<iostream>
using namespace std;
const int N=5e5+10;
typedef long long ll;
char s[N];
int n,sg,sh;
ll res;
int l[N],r[N];
int main()
{
cin>>n;
cin>>s+1;
for(int i=1;i<=n;i++)
{
if(s[i]=='G')
{
l[i]=sh;
sg++;
sh=0;
}
else
{
l[i]=sg;
sh++;
sg=0;
}
}
sh=sg=0;
for(int i=n;i;i--)
{
if(s[i]=='G')
{
r[i]=sh;
sg++;
sh=0;
}
else
{
r[i]=sg;
sh++;
sg=0;
}
}
for(int i=1;i<=n;i++)
{
res+=(ll)l[i]*r[i]+max(0,l[i]-1)+max(0,r[i]-1);
}
cout<<res<<endl;
return 0;
}