#include <bits/stdc++.h>
using namespace std;
int main(){
srand(0);
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n;
string s;
cin >> n >> s;
vector<int> cor(n,0);
vector<int> pov(n,0);
int isp=0;
for (int k=0;k<n*2;k++){
int ind1=0;
int ind2=k;
for (int i=0;i<n;i++){
while (s[ind1]=='B'){
ind1++;
}
cor[i]=ind1;
while (s[ind2]=='W'){
ind2++;
ind2%=n*2;
}
pov[i]=ind2;
ind1++;
ind1%=n*2;
ind2++;
ind2%=n*2;
}
int rje=0;
for (int i=0;i<n;i++){
for (int j=i+1;j<n;j++){
int ind1w=cor[i];
int ind2w=cor[j];
int ind1b=pov[i];
int ind2b=pov[j];
ind2w-=ind1w;
ind2w+=n*2;
ind2w%=n*2;
ind1b-=ind1w;
ind1b+=n*2;
ind1b%=n*2;
ind2b-=ind1w;
ind2b+=n*2;
ind2b%=n*2;
ind1w=0;
// cout << ind1w+1 << " " << ind2w+1 << " " << ind1b+1 << " " << ind2b+1 << "\n";
// cout << cor[i]+1 << " " << cor[j]+1 << " " << pov[i]+1 << " " << pov[j]+1 << "\n";
if (min(ind2w,ind2b)<ind1b && max(ind2w,ind2b)>ind1b){
rje++;
// cout << "+\n";
}
}
}
isp=max(isp,rje);
}
cout << isp << "\n";
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |