제출 #850852

#제출 시각아이디문제언어결과실행 시간메모리
850852danikoynovChorus (JOI23_chorus)C++14
16 / 100
34 ms360 KiB
/** ____ ____ ____ ____ ____ ____ ||l |||e |||i |||n |||a |||d || ||__|||__|||__|||__|||__|||__|| |/__\|/__\|/__\|/__\|/__\|/__\| **/ #include<bits/stdc++.h> #define endl '\n' using namespace std; typedef long long ll; void speed() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); } int n, k; string s; int check(int mask) { int cnt0 = 0, cnt1 = 0, ans = 0; /**for (int i = 0; i < 2 * n; i ++) { if ((mask & (1 << i)) > 0) cout << 1; else cout << 0; } cout << endl;*/ for (int i = 0; i < 2 * n; i ++) { int cur = 0; if ((mask & (1 << i)) > 0) cur ++; ///cout << i << " : " << cnt0 << " : " << cnt1 << endl; if (cur == 0) { cnt0 ++; continue; } if (cnt1 > 0) cnt1 --; else { if (cnt0 == 0) return 2 * n + 1; cnt1 = cnt0 - 1; cnt0 = 0; ans ++; } } return ans; } void solve() { cin >> n >> k >> s; /**int ms = 0; for (int i = 0; i < 2 * n; i ++) if (s[i] == 'B') ms = (ms | (1 << i)); cout << ms << " : " << check(ms) << endl; for (int j = 0; j < 2 * n; j ++) cout << ((ms & (1 << j)) > 0); cout << endl; return;*/ int ans = n * n; for (int mask = 0; mask <= (1 << (2 * n)); mask ++) { int cnt = 0; for (int i = 0; i < 2 * n; i ++) { if ((mask & (1 << i)) > 0) cnt ++; } if (cnt != n) continue; int cur = 0, pt = 0; for (int i = 0; i < 2 * n; i ++) { if (s[i] == 'B') continue; while((mask & (1 << pt)) > 0) pt ++; ///cout << i << " : " << pt << endl; cur = cur + abs(i - pt); pt ++; } /**for (int j = 0; j < 2 * n; j ++) cout << ((mask & (1 << j)) > 0); cout << endl;*/ ///if (check(mask) == 0) ///cout << mask << endl; ///cout << mask << " : " << check(mask) << " " << cur << endl; if (check(mask) <= k) { //if (cur == 0) // cout << "!!! " << mask << endl; ///cout << mask << endl; ans = min(ans, cur); ///cout << ans << endl; } } cout << ans << endl; } int main() { solve(); 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...