# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
970818 |
2024-04-27T10:37:26 Z |
Ludissey |
Miners (IOI07_miners) |
C++17 |
|
795 ms |
444772 KB |
#include <bits/stdc++.h>
#define sz(a) (int)a.size()
#define all(x) (x).begin(), (x).end()
using namespace std;
vector<int> a;
vector<vector<vector<vector<vector<int>>>>> memo;
int calcExtra(int c, int prev, int prev2){
if(prev==3) return 1;
else if(prev2==3){
if(prev!=c) return 2;
else return 1;
}
if(c!=prev&&prev2!=c&&prev2!=prev) return 3;
else if(c==prev&&prev2==c) return 1;
else return 2;
}
int dp(int x, int prev, int prevprev, int prev2, int prevprev2){
if(x==sz(a)) return 0;
if(memo[x][prev][prevprev][prev2][prevprev2]!=-1) return memo[x][prev][prevprev][prev2][prevprev2];
int mine1=dp(x+1,a[x], prev ,prev2,prevprev2)+calcExtra(a[x],prev,prevprev);
int mine2=dp(x+1,prev,prevprev, a[x], prev2)+calcExtra(a[x],prev2,prevprev2);
return memo[x][prev][prevprev][prev2][prevprev2]=max(mine1,mine2);
}
signed main() {
ios_base::sync_with_stdio(false); cin.tie(nullptr);
int n; cin >> n;
a.resize(n);
memo.resize(n+1, vector<vector<vector<vector<int>>>>(4,vector<vector<vector<int>>>(4, vector<vector<int>>(4, vector<int>(4, -1)))));
for (int i = 0; i < n; i++)
{
char c; cin >>c;
if(c=='M') a[i]=0;
else if(c=='B') a[i]=1;
else if(c=='F') a[i]=2;
}
cout << dp(0,3,3,3,3)<<"\n";
return 0;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
360 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
344 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
348 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
348 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
344 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
344 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
4700 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
39 ms |
22664 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
76 ms |
44668 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
229 ms |
111380 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
506 ms |
333536 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
795 ms |
444772 KB |
Output is correct |