제출 #534465

#제출 시각아이디문제언어결과실행 시간메모리
534465bonkMiners (IOI07_miners)C++14
16 / 100
409 ms1148 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; ll check(vector<char>v){ int n = v.size() - 1; bool M, B, F; M = B = F = 0; for(int i = 0; i < 3; i++){ if(v[n - i] == 'M') M = true; else if(v[n - i] == 'B') B = true; else if(v[n - i] == 'F') F = true; } return (M + B + F); } int main(){ int n; cin >> n; ll ans = 0; vector<char>s(n); for(int i = 1; i <= n; i++) cin >> s[i]; vector<char>a, b; a.push_back('A'); a.push_back('A'); b.push_back('A'); b.push_back('A'); for(int i = 1; i <= n; i++){ bool x, y; x = y = false; if(s[i] != a.back() && s[i] == b.back()){ a.push_back(s[i]); x = true; } else if(s[i] != b.back() && s[i] == a.back()){ b.push_back(s[i]); y = true; } else if(s[i] != a.back() && s[i] != b.back()){ auto it1 = find(s.begin() + i, s.end(), a.back()) - s.begin(); auto it2 = find(s.begin() + i, s.end(), b.back()) - s.begin(); if(it1 < it2){ a.push_back(s[i]); x = true; } else{ b.push_back(s[i]); y = true; } } else{ vector<char>tmpa, tmpb; tmpa = a; tmpb = b; tmpa.push_back(s[i]); tmpb.push_back(s[i]); if(check(tmpa) > check(tmpb)){ a.push_back(s[i]); x = true; } else{ b.push_back(s[i]); y = true; } } if(x) ans += check(a); else ans += check(b); } cout << ans << endl; return 0; } /* MBF MFB */
#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...