#include <bits/stdc++.h>
#define int long long
#define exoworldgd cin.tie(0)->sync_with_stdio(0),cout.tie(0)
using namespace std;
int get(char c) {return c=='M'?1:c=='F'?2:c=='B'?3:0;}
int cnt(int a, int b, int c) {
set<int> s;
if (a > 0) s.insert(a);
if (b > 0) s.insert(b);
if (c > 0) s.insert(c);
return s.size();
}
int dp[2][4][4][4][4],n,curr,nxt,ans=0;
signed main(void) {
exoworldgd;
string s;
cin >> n >> s, memset(dp,-1,sizeof(dp)),dp[0][0][0][0][0] = 0;
for (char c : s) {
curr = get(c),nxt = 1-nxt,memset(dp[nxt],-1,sizeof(dp[nxt]));
for (int j = 0; j < 4; j++) {
for (int k = 0; k < 4; k++) {
for (int l = 0; l < 4; l++) {
for (int m = 0; m < 4; m++) {
if (dp[nxt^1][j][k][l][m] == -1) continue;
dp[nxt][k][curr][l][m] = max(dp[nxt][k][curr][l][m],dp[nxt^1][j][k][l][m]+cnt(j,k,curr)), dp[nxt][j][k][m][curr] = max(dp[nxt][j][k][m][curr],dp[nxt^1][j][k][l][m]+cnt(l,m,curr));
}
}
}
}
}
for (int j = 0; j < 4; j++) for (int k = 0; k < 4; k++) for (int l = 0; l < 4; l++) for (int m = 0; m < 4; m++) if (dp[nxt][j][k][l][m]^-1) ans = max(ans,dp[nxt][j][k][l][m]);
cout << ans;
}
| # | 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... |
| # | 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... |
| # | 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... |