# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
888496 |
2023-12-17T14:51:57 Z |
Macker |
Miners (IOI07_miners) |
C++17 |
|
330 ms |
286060 KB |
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define all(v) v.begin(), v.end()
#define mx(a, b) a = max(a, b)
int dp[100005][3][3][3][3][3][3]; //t, s1, s2, c, ss1, ss2, cc
int main()
{
int n; cin >> n;
string s; cin >> s;
for (int i = 0; i < 100005; i++)
for (int s1 = 0; s1 < 3; s1++)
for (int s2 = 0; s2 < 3; s2++)
for (int c = 0; c < 3; c++)
for (int ss1 = 0; ss1 < 3; ss1++)
for (int ss2 = 0; ss2 < 3; ss2++)
for (int cc = 0; cc < 3; cc++){
if(c + cc + i == 0)
dp[i][s1][s2][c][ss1][ss2][cc] = 0;
else
dp[i][s1][s2][c][ss1][ss2][cc] = INT_MIN/2;
}
for (int i = 0; i < n; i++) {
int a;
if(s[i] == 'M') a = 0;
if(s[i] == 'F') a = 1;
if(s[i] == 'B') a = 2;
for (int s1 = 0; s1 < 3; s1++)
for (int s2 = 0; s2 < 3; s2++)
for (int c = 0; c < 3; c++)
for (int ss1 = 0; ss1 < 3; ss1++)
for (int ss2 = 0; ss2 < 3; ss2++)
for (int cc = 0; cc < 3; cc++){
if(c == 0){
mx(dp[i + 1][a][s1][1][ss1][ss2][cc], dp[i][s1][s2][0][ss1][ss2][cc] + 1);
}
else if(c == 1){
int v = 1 + (a != s1);
mx(dp[i + 1][a][s1][2][ss1][ss2][cc], dp[i][s1][s2][1][ss1][ss2][cc] + v);
}
else if(c == 2){
int v = 1 + ((a != s1) && (a != s2)) + (s1 != s2);
mx(dp[i + 1][a][s1][2][ss1][ss2][cc], dp[i][s1][s2][2][ss1][ss2][cc] + v);
}
if(cc == 0){
mx(dp[i + 1][s1][s2][c][a][ss1][1], dp[i][s1][s2][c][ss1][ss2][0] + 1);
}
else if(cc == 1) {
int v = 1 + (a != ss1);
mx(dp[i + 1][s1][s2][c][a][ss1][2], dp[i][s1][s2][c][ss1][ss2][1] + v);
}
else if(cc == 2){
int v = 1 + ((a != ss1) && (a != ss2)) + (ss1 != ss2);
mx(dp[i + 1][s1][s2][c][a][ss1][2], dp[i][s1][s2][c][ss1][ss2][2] + v);
}
}
}
int res = 0;
for (int s1 = 0; s1 < 3; s1++)
for (int s2 = 0; s2 < 3; s2++)
for (int c = 0; c < 3; c++)
for (int ss1 = 0; ss1 < 3; ss1++)
for (int ss2 = 0; ss2 < 3; ss2++)
for (int cc = 0; cc < 3; cc++){
mx(res, dp[n][s1][s2][c][ss1][ss2][cc]);
}
cout << res << endl;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
132 ms |
286012 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
107 ms |
285520 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
107 ms |
285732 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
110 ms |
285728 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
108 ms |
285520 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
107 ms |
285648 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
113 ms |
285680 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
121 ms |
285972 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
138 ms |
285780 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
165 ms |
285836 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
276 ms |
286032 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
330 ms |
286060 KB |
Output is correct |