fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int c, n, last_bin;
  5. bool was_it = 0;
  6.  
  7. int main() {
  8. cin >> c; // wczytujemy liczbe przypadkow
  9. for (int cases = 0; cases < c; cases++) {
  10. cin >> n;
  11. string s;
  12. int out = 0;
  13. cin >> s;
  14. for (int i = 0; i < n; i++) {
  15. if (s[i] == '1') { // jezeli smietnik jest pod domem
  16. last_bin == i; //ustawiamy last bin na index ostatniego smietnika
  17. was_it = 1;
  18. // out += 0
  19. }
  20. else if (s[i] == '0' && was_it == 1 && i - last_bin == 1) { // jezeli smietnik jest dom obok
  21. out += 1;
  22. }
  23. else if (s[i] == '0' && was_it != 1) { // jezeli nie bylo jeszcze zadnego smietnika
  24. int x = 0;
  25. for (int j = i-1; j < n; j++) {
  26. x++;
  27. if (s[j] == '1') {
  28. out += x;
  29. break;
  30. }
  31. }
  32. }
  33. else if (s[i] == '0') { // jezeli byl juz jakis smietnik ale niekonieczne obok
  34. int x = 0;
  35. for (int j = i-1; j < n-last_bin-1; j++) {
  36. x++;
  37. if (s[j] == '1') {
  38. out += x;
  39. break;
  40. }
  41. }
  42. }
  43. }
  44. cout << out << '\n';
  45.  
  46. }
  47.  
  48. return 0;
  49. }
Success #stdin #stdout 0.01s 5592KB
stdin
2
3
111
6
100100
stdout
0
5