fork download
  1. #include <bits/stdc++.h>
  2. #define ll long long
  3. #define el '\n'
  4. #define sandra ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
  5. using namespace std;
  6.  
  7. ll count_swaps(const string &s, char start) {
  8. ll mismatch = 0;
  9. for (ll i = 0; i < s.size(); i++) {
  10. char expected = (i % 2 == 0) ? start : (start == '0' ? '1' : '0');
  11. if (s[i] != expected) mismatch++;
  12. }
  13. return mismatch / 2;
  14. }
  15.  
  16. signed main() {
  17. sandra
  18.  
  19. ll t = 0;
  20. cin >> t;
  21. while (t--) {
  22. ll num;
  23. string s;
  24. cin >> num >> s;
  25.  
  26. int zeros = count(s.begin(), s.end(), '0');
  27. int ones = num - zeros;
  28.  
  29. if (abs(zeros - ones) > 1) {
  30. cout << -1 << el;
  31. } else {
  32. ll ans = LLONG_MAX;
  33. if (zeros >= ones)
  34. ans = min(ans, count_swaps(s, '0'));
  35. if (ones >= zeros)
  36. ans = min(ans, count_swaps(s, '1'));
  37. cout << ans << el;
  38. }
  39. }
  40. return 0;
  41. }
  42.  
Success #stdin #stdout 0.01s 5312KB
stdin
1
7
0001110
stdout
1