Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- int main() {
- ios::sync_with_stdio(0);
- int t;
- cin >> t;
- for (int test_case = 0; test_case < t; test_case++) {
- string s;
- cin >> s;
- int b = 0;
- int g = 0;
- for (auto c : s) {
- if (c == 'b') b++;
- else g++;
- }
- if (g > b) swap(b, g);
- int b_mid = g - 1;
- int b_left = (b - b_mid)/2;
- int b_right = b - b_mid - b_left;
- string t;
- for (int i = 0; i < b_left; i++) t += 'b';
- for (int i = 0; i < g; i++) {
- if (i) t += 'b';
- t += 'g';
- }
- for (int i = 0; i < b_right; i++) t += 'b';
- assert(t.size() == b + g);
- long long ans = 0;
- int b_count = 0;
- long long tmp = 0;
- for (int i = 0; i < t.size(); i++) {
- tmp += b_count;
- if (t[i] == 'b') b_count++;
- else ans += tmp;
- }
- b_count = 0;
- tmp = 0;
- for (int i = (int)t.size() - 1; i >= 0; i--) {
- tmp += b_count;
- if (t[i] == 'b') b_count++;
- else ans += tmp;
- }
- //cout << t << ": " << ans << endl;
- if (test_case) cout << " ";
- cout << ans;
- }
- cout << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement