제출 #216108

#제출 시각아이디문제언어결과실행 시간메모리
216108anmichiMiners (IOI07_miners)C++17
76 / 100
1601 ms101116 KiB
#include <bits/stdc++.h> using namespace std; #define rep(i,n) for(int i=0;i<n;i++) template<class T>void chmax(T &a,T b){if(a<b)a=b;} template<class T>void chmin(T &a,T b){if(a>b)a=b;} constexpr int INF=1000000000; signed main(){ int n,a[100010],dp[100010][4][4][4][4]; string s; cin>>n>>s; rep(i,n+1){ rep(c,4){ rep(d,4){ rep(e,4){ rep(f,4){ dp[i][c][d][e][f]=-INF; } } } } } dp[0][3][3][3][3]=0; rep(i,n){ if(s[i]=='M')a[i]=0; if(s[i]=='F')a[i]=1; if(s[i]=='B')a[i]=2; } rep(i,n){ rep(c,4){ rep(d,4){ rep(e,4){ rep(f,4){ set<int>x,y; x.insert(c); x.insert(d); x.insert(a[i]); x.erase(3); y.insert(e); y.insert(f); y.insert(a[i]); y.erase(3); chmax(dp[i+1][a[i]][c][e][f],dp[i][c][d][e][f]+(int)x.size()); chmax(dp[i+1][c][d][a[i]][e],dp[i][c][d][e][f]+(int)y.size()); } } } } } int ans=0; rep(c,4){ rep(d,4){ rep(e,4){ rep(f,4){ chmax(ans,dp[n][c][d][e][f]); } } } } cout<<ans<<endl; return 0; }
#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...