Submission #495318

#TimeUsernameProblemLanguageResultExecution timeMemory
495318600MihneaMonochrome Points (JOI20_monochrome)C++17
25 / 100
2062 ms332 KiB
#include <iostream> #include <vector> #include <string> #include <functional> #include <cassert> using namespace std; typedef long long ll; const int N = 400000 + 7; int n; string s; int main() { ios::sync_with_stdio(0); cin.tie(0); cin >> n >> s; function<ll(vector<int>, vector<int>)> compute = [&](vector<int> a, vector<int> b) { ll sol = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (min(a[i], b[i]) < min(a[j], b[j]) && min(a[j], b[j]) < max(a[i], b[i]) && max(a[i], b[i]) < max(a[j], b[j])) { sol++; } } } return sol; }; function<vector<int>(vector<int>, int)> shift = [&](vector<int> a, int cnt) { vector<int> b((int)a.size()); for (int i = 0; i < (int)a.size(); i++) { b[(i + cnt) % (int)a.size()] = a[i]; } return b; }; vector<int> a, b; for (int i = 0; i < 2 * n; i++) { if (s[i] != s[0]) { a.push_back(i); } else { b.push_back(i); } } ll sol = 0; for (int cnt = 0; cnt < n; cnt++) { sol = max(sol, compute(a, shift(b, cnt))); } cout << sol << "\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...