제출 #519038

#제출 시각아이디문제언어결과실행 시간메모리
519038AdamGSMiners (IOI07_miners)C++17
92 / 100
1560 ms588 KiB
#include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; #define rep(a, b) for(int a = 0; a < (b); ++a) #define st first #define nd second #define pb push_back #define all(a) a.begin(), a.end() const int INF=1e9+7; int dp[4][4][4][4], tmp[4][4][4][4]; int ile(vector<int>V) { sort(all(V)); int ans=1; if(V[0]==0) ans=0; if(V[1]!=V[0]) ++ans; if(V[2]!=V[1]) ++ans; return ans; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n; string s; cin >> n >> s; rep(a, 4) rep(b, 4) rep(c, 4) rep(d, 4) dp[a][b][c][d]=-INF; dp[0][0][0][0]=0; for(auto i : s) { rep(a, 4) rep(b, 4) rep(c, 4) rep(d, 4) tmp[a][b][c][d]=-INF; rep(a, 4) rep(b, 4) rep(c, 4) rep(d, 4) { int x=1; if(i=='F') x=2; else if(i=='B') x=3; tmp[a][b][d][x]=max(tmp[a][b][d][x], dp[a][b][c][d]+ile({c, d, x})); tmp[b][x][c][d]=max(tmp[b][x][c][d], dp[a][b][c][d]+ile({a, b, x})); } rep(a, 4) rep(b, 4) rep(c, 4) rep(d, 4) dp[a][b][c][d]=tmp[a][b][c][d]; } int ans=0; rep(a, 4) rep(b, 4) rep(c, 4) rep(d, 4) ans=max(ans, dp[a][b][c][d]); cout << ans << '\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...