Постановка задачи

В ряду N мест. Вам дана строка S длины N; для каждого действительного ii i-й символ S равен «0», если i-е место пусто, или «1», если на этом месте кто-то сидит.

Два человека являются друзьями, если они сидят рядом друг с другом. Два друга всегда входят в одну группу друзей. Сможете ли вы найти общее количество групп?

Вход

  • Первая строка входных данных содержит единственное целое число T, обозначающее количество тестовых случаев. Ниже приводится описание T тестовых случаев.
  • Первая и единственная строка каждого теста содержит одну строку S.

Вывод

Для каждого набора входных данных выведите одну строку, содержащую одно целое число — количество групп.

Ограничения

  • 1≤T≤50
  • 1≤N≤105

Подзадачи

Подзадача №1 (100 баллов): исходные ограничения

Пример ввода

4
000
010
101
01011011011110

Пример вывода

0
1
2
4

Объяснение

Пример 1. Поскольку все места свободны, количество групп равно 0.

Пример 2. Поскольку занято только одно место, число групп равно 1.

Пример 3: Здесь заняты два места, но, поскольку они не являются смежными, люди, сидящие на них, принадлежат к разным группам.

Пример 4. Здесь у нас есть 4 группы друзей размером 1, 2, 2 и 4 соответственно. То есть первая группа занимает 2-е место, вторая группа — 4-е и 5-е места, третья группа — 7-е и 8-е места, а четвертая группа — места с 10-го по 13-е.

Код (решение)

Код был реализован на Java

/* package codechef; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
class Codechef
{
public static void main (String[] args) throws java.lang.Exception
{
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
int grp = 0;
while(t-- > 0){
String str = sc.next();
int i=0, n = str.length();
int res = 0;
while(i<n) {
boolean goes = false;
while(i<n && str.charAt(i) == '1') {
i++;
goes = true;
}
if(goes) res++;
else i++;
}
System.out.println(res);
}
}
}

Надеюсь, вам понравилась статья. Пожалуйста, поставьте 50 аплодисментов этой статье и подписывайтесь на меня, чтобы не пропустить новые блоги, связанные с программированием.

Ссылки

https://www.codechef.com/MARCH21C/problems/GROUPS