#include <bits/stdc++.h>
using namespace std;
int n; string str;
int dp[100005][10][10];
int conv(char x) {
return (x == 'M' ? 0 : x == 'B' ? 1 : 2);
}
int score(int a, int b, int c) {
if(a == b && b == c) return 1;
if(a != b && b != c && a != c) return 3;
return 2;
}
int main() {
cin.tie(0) -> sync_with_stdio(0);
cin >> n >> str;
int mx = 0;
for(int k=0;k<=n;k++) for(int i=0;i<10;i++) for(int j=0;j<10;j++) dp[k][i][j] = -999999999;
dp[0][0][0] = 0;
for(int i=0;i<n;i++) {
int cmx = 0;
for(int d1=0;d1<10;d1++) {
for(int d2=0;d2<10;d2++) {
if(!d1) dp[i+1][conv(str[i])*4+1][d2] = max(dp[i+1][conv(str[i])*4+1][d2], dp[i][d1][d2] + 1);
else dp[i+1][(d1-1)%3*3+conv(str[i])+1][d2] = max(dp[i+1][(d1-1)%3*3+conv(str[i])+1][d2], dp[i][d1][d2] + score((d1-1)/3, (d1-1)%3, conv(str[i])));
if(!d2) dp[i+1][d1][conv(str[i])*4+1] = max(dp[i+1][d1][conv(str[i])*4+1], dp[i][d1][d2] + 1);
else dp[i+1][d1][(d2-1)%3*3+conv(str[i])+1] = max(dp[i+1][d1][(d2-1)%3*3+conv(str[i])+1], dp[i][d1][d2] + score((d2-1)/3, (d2-1)%3, conv(str[i])));
}
}
}
for(int i=0;i<10;i++) for(int j=0;j<10;j++) mx = max(mx, dp[n][i][j]);
cout << mx;
}
# | 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... |