# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
674019 |
2022-12-22T14:54:52 Z |
Cookie |
Miners (IOI07_miners) |
C++14 |
|
164 ms |
111948 KB |
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define vt vector
#define se second
#define fi first
#define pb push_back
int n;
int aa[100001];
int d[100001][4][4][4][4];
int get(int p){
if(p == 0)return(0);
return(1 << (p - 1));
}
int solve(int id, int a, int b, int c, int dd){
if(id == n)return(0);
if(d[id][a][b][c][dd] != -1)return(d[id][a][b][c][dd]);
int crmask = (get(a)) | (get(b)) | (get(aa[id]));
crmask = max(crmask, 1 << (aa[id] - 1));
int cr = 0;
cr = max(cr, solve(id + 1, b, aa[id], c, dd) + __builtin_popcount(crmask));
crmask = (get(c)) | (get(dd)) | (get(aa[id]));
cr = max(cr, solve(id + 1, a, b, dd, aa[id]) + __builtin_popcount(crmask));
d[id][a][b][c][dd] = cr;
return(cr);
}
int main()
{
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
cin >> n;
for(int i = 0; i < n; i++){
char c; cin >> c;
if(c == 'M')aa[i] = 1;
else if(c == 'B')aa[i] = 2;
else aa[i] = 3;
}
memset(d, -1, sizeof(d));
solve(0, 0, 0, 0, 0);
cout << d[0][0][0][0][0];
return 0;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
36 ms |
100412 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
37 ms |
100424 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
36 ms |
100428 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
36 ms |
100392 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
36 ms |
100440 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
43 ms |
100472 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
39 ms |
100560 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
42 ms |
100964 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
54 ms |
101616 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
99 ms |
103364 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
112 ms |
109004 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
164 ms |
111948 KB |
Output is correct |