# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
618992 |
2022-08-02T08:48:39 Z |
neki |
Miners (IOI07_miners) |
C++14 |
|
428 ms |
200888 KB |
#include <bits/stdc++.h>
#define vc vector
#define ll long long
using namespace std;
int main() {
ll n;cin >> n;
string s;cin >> s;
vc<char> chs={'0', 'M', 'F', 'B'};
auto fndind=[&](char c){
for(ll i=0;i<4;++i) if(chs[i]==c) return i;
assert(0);
return -1LL;
};
auto get=[&](vc<ll> arr){
ll ret=0;
for(ll i=1;i<=3;++i){ for(auto v: arr) if(v==i){++ret;break;}}
return ret;
};
ll dp[n+1][4][4][4][4];
for(ll i=0;i<=n;++i) for(ll a1=0;a1<4;++a1) for(ll b1=0;b1<4;++b1) for(ll a2=0;a2<4;++a2) for(ll b2=0;b2<4;++b2) dp[i][a1][b1][a2][b2]=-1;
dp[0][0][0][0][0]=0;
for(ll i=1;i<=n;++i){
ll ch=fndind(s[i-1]);
for(ll a1=0;a1<4;++a1) for(ll b1=0;b1<4;++b1) for(ll a2=0;a2<4;++a2) for(ll b2=0;b2<4;++b2)if(dp[i-1][a1][b1][a2][b2]!=-1){
dp[i][b1][ch][a2][b2]=max(dp[i][b1][ch][a2][b2], dp[i-1][a1][b1][a2][b2] + get({a1, b1, ch}));
dp[i][a1][b1][b2][ch]=max(dp[i][a1][b1][b2][ch], dp[i-1][a1][b1][a2][b2] + get({a2, b2, ch}));
}
}
ll ans=0;
for(ll a1=0;a1<4;++a1) for(ll b1=0;b1<4;++b1) for(ll a2=0;a2<4;++a2) for(ll b2=0;b2<4;++b2)if(dp[n][a1][b1][a2][b2]!=-1) ans=max(ans, dp[n][a1][b1][a2][b2]);
cout << ans << endl;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
212 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
212 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
212 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
340 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
212 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
340 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
2260 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
16 ms |
10324 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
43 ms |
20336 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
111 ms |
50428 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
281 ms |
150768 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
428 ms |
200888 KB |
Output is correct |