#include <bits/stdc++.h>
using namespace std;
const int maxn=1e5+1;
const int inf=1e9+7;
int v[maxn], dp[2][4][4][4][4]; // quais eram os ultimos dois ativos de cada mina
int main()
{
ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
int n; cin >> n;
for(int i=1;i<=n;i++){
char c; cin >> c;
if(c=='M') v[i]=1;
if(c=='B') v[i]=2;
if(c=='F') v[i]=3;
}
for(int i=0;i<=1;i++)
for(int i1=0;i1<=3;i1++)
for(int i2=0;i2<=3;i2++)
for(int j1=0;j1<=3;j1++)
for(int j2=0;j2<=3;j2++)
dp[i][i1][i2][j1][j2]=-inf;
dp[0][0][0][0][0]=0;
int resp=0;
for(int i=1;i<=n;i++)
for(int i1=0;i1<=3;i1++)
for(int i2=0;i2<=3;i2++)
for(int j1=0;j1<=3;j1++)
for(int j2=0;j2<=3;j2++){
int j=i%2;
int t1=3, t2=3;
if(!i1||!i2) t1--;
if(!j1||!j2) t2--;
if(i1==v[i]||i1==i2) t1--;
if(j1==v[i]||j1==j2) t2--;
if(v[i]==i2) t1--;
if(v[i]==j2) t2--;
dp[j][i2][v[i]][j1][j2]=max(dp[((j+1)%2)][i1][i2][j1][j2]+t1,dp[j][i2][v[i]][j1][j2]);
dp[j][i1][i2][j2][v[i]]=max(dp[((j+1)%2)][i1][i2][j1][j2]+t2,dp[j][i1][i2][j2][v[i]]);
resp=max({resp,dp[j][i2][v[i]][j1][j2],dp[j][i1][i2][j2][v[i]]});
}
cout << resp << endl;
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... |
# | 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... |