This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
int val(int a, int b, int c){
int db=0;
for(int i=1;i<=3;i++){
if(a==i || b==i || c==i){
++db;
}
}
return db;
}
int dp[100001][4][4][4][4];
bool reach[100001][4][4][4][4];
int main(){
int n;
char c;
cin >> n;
int mx=0;
reach[1][0][0][0][0]=1;
for(int i=1;i<=n;i++){
cin >> c;
int mi;
if(c=='M') mi = 1;
if(c=='B') mi = 2;
if(c=='F') mi = 3;
for(int a=0;a<4;a++){
for(int b=0;b<4;b++){
for(int c=0;c<4;c++){
for(int d=0;d<4;d++){
dp[i][a][b][c][d]=0;
reach[i][a][b][c][d]=0;
}
}
}
}
for(int a=0;a<4;a++){
for(int b=0;b<4;b++){
for(int c=0;c<4;c++){
for(int d=0;d<4;d++){
if(reach[i-1][a][b][c][d]){
reach[i][mi][a][c][d] = 1;
reach[i][a][b][mi][c] = 1;
dp[i][mi][a][c][d]=max(dp[i-1][a][b][c][d]+val(mi,a,b),dp[i][mi][a][c][d]);
mx=max(mx,dp[i][mi][a][c][d]);
dp[i][a][b][mi][c]=max(dp[i-1][a][b][c][d]+val(mi,c,d),dp[i][a][b][mi][c]);
mx=max(mx,dp[i][a][b][mi][c]);
}
}
}
}
}
}
cout << mx;
return 0;
}
Compilation message (stderr)
miners.cpp: In function 'int main()':
miners.cpp:8:7: warning: 'mi' may be used uninitialized in this function [-Wmaybe-uninitialized]
if(a==i || b==i || c==i){
~^~~
miners.cpp:26:7: note: 'mi' was declared here
int mi;
^~
# | 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... |