Submission #683844

#TimeUsernameProblemLanguageResultExecution timeMemory
683844abc864197532Monochrome Points (JOI20_monochrome)C++17
0 / 100
1 ms308 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define pii pair<int,int> #define all(x) x.begin(), x.end() int main() { ios::sync_with_stdio(false), cin.tie(0); int n; string s; cin >> n >> s; vector <int> W, B; for (int i = 0; i < n; ++i) { if (s[i] == s[i + n]) { (s[i] == 'W' ? W : B).pb(i); } } ll ans = 1ll * n * (n - 1) / 2; int m = W.size(); vector <int> dp(1 << m, 1 << 30); dp[0] = 0; for (int s = 0; s < (1 << m); ++s) { int num = __builtin_popcount(s); for (int i = 0; i < m; ++i) if (~s >> i & 1) { dp[s | (1 << i)] = min(dp[s | (1 << i)], dp[s] + abs(W[i] - B[num])); } } cout << ans - dp.back() << '\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...