#include <bits/stdc++.h>
using namespace std;
typedef long long ll;;
typedef pair<int, int> pii;
#define FOR(i, j, n) for(int i = j; i<= n; i++)
#define ROF(i, n, j) for(int i = n; i>= j; i--)
#define pb push_back
#define S second
#define F first
#define IOS ios_base :: sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define G(i, j) get<j-1>(i)
#define print(i) cout << #i << ": " << i
const int mn = 10;
int a[2*mn];
int g1[mn], g2[mn], p[mn];
signed main()
{
IOS;
int n;
cin >> n;
string s;
cin >> s;
int tmp1 = 0, tmp2 = 0;
FOR(i, 0, 2*n-1)
{
if (s[i] == 'B')
{
tmp1++;
g1[tmp1] = i+1;
a[i+1] = 1;
}
else
{
tmp2++;
g2[tmp2] = i+1;
a[i+1] = 2;
}
}
FOR(i, 1, n) p[i] = i;
int out = 0;
do
{
int ans = 0;
FOR(i, 1, n)
{
FOR(j, i+1, n)
{
int l1 = min(g1[i], g2[p[i]]), r1 = max(g1[i], g2[p[i]]);
int l2 = min(g1[j], g2[p[j]]), r2 = max(g1[j], g2[p[j]]);
if ((l1 < l2 and l2 < r1 and r1 < r2) or (l2 < l1 and l1 < r2 and r2 < r1)) ans++;
}
}
out = max(out, ans);
}while (next_permutation(p+1, p+n+1));
cout << out;
return 0;
}
# | 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... |