Деревни | 프로그래밍의 벗 PivotOJ
PivotOJ

Деревни

시간 제한: 2000ms메모리 제한: 1024MB출처: MOOI 2016-17 quallongBOJ 30748

문제

В одной стране все населённые пункты являются деревнями и расположены вдоль длинной прямой дороги. Всего вдоль дороги имеется nn остановок, расстояние между любыми двумя соседними остановками равно одному километру. Рядом с некоторыми остановками расположены деревни.

Министерство транспорта решило запустить между деревнями рейсовые автобусы, ровно по одному маршруту из каждой деревни. Планируется, что автобус будет выезжать из деревни и двигаться направо вдоль дороги (в сторону увеличения номеров остановок) до тех пор, пока не встретит kk деревень, либо не доедет до последней. После этого автобус будет возвращаться в начальную деревню. Так, для самой последней деревни автобус проедет расстояние 00 (направо, ему, конечно, ехать некуда, и, казалось бы, он вообще никому не нужен, но этот вопрос остаётся за рамками данной задачи). Необходимо посчитать длину маршрута каждого автобуса.

입력

В первой строке входных данных находится целое число kk (1k3000001 \leq k \leq 300\,000) --- количество деревень правее стартовой, которые должен посетить каждый автобус.

Во второй строке следует строка ss, состоящая только из символов из '0' и '1', --- описание дороги. Если ii-й символ строки равен '1', то рядом с ii-й остановкой есть деревня, а если '0', то нет. Гарантируется, что всегда есть хотя бы одна деревня, то есть ss содержит не менее одного символа '1'. Длина строки ss не превосходит 300000300\,000 символов.

출력

Пусть всего во входных данных mm деревень, то есть mm символов строки ss равны '1'. Пронумеруем деревни слева направо вдоль дороги, то есть от начала строки ss к концу. Необходимо вывести ровно mm целых чисел, ii-е из которых должно быть равно длине маршрута автобуса, выезжающего из ii-й деревни.

힌트

Рассмотрим первый пример.

  1. Автобус из деревни, расположенной у остановки 11, будет ездить до деревни, расположенной у остановки 44, потому что это вторая деревня на его пути.
  2. Автобус из деревни, расположенной у остановки 33, будет ездить до деревни, расположенной у остановки 66, потому что это вторая деревня на его пути.
  3. Автобус из деревни, расположенной у остановки 44, будет ездить до деревни, расположенной у остановки 66, потому что это последняя деревня вдоль дороги.
  4. Автобус из деревни, расположенной у остановки 66, будет ездить до деревни, расположенной у остановки 66, потому что это последняя деревня вдоль дороги.

예제

예제 1

입력
2
101101
출력
6 6 4 0

예제 2

입력
1
10010001000
출력
6 8 0

예제 3

입력
10
111
출력
4 2 0
이 문제는 채점 준비 중입니다. 테스트 데이터가 확보되면 제출이 가능합니다.