QOJ.ac

QOJ

时间限制: 1 s 内存限制: 1024 MB 总分: 10

#8401. Муравьи

统计

На числовой прямой стоят $n$ муравьев, $i$-й из них находится в точке $i$. Каждый муравей смотрит либо вправо (в сторону возрастания координат), либо влево (в сторону убывания координат). Муравьи настолько малы, что их можно считать точками.

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

Входные данные

В первой строке стандартного ввода содержится одно целое число $n$ ($1 \le n \le 300\,000$), обозначающее количество муравьев.

Во второй строке стандартного ввода содержится строка длины $n$, состоящая только из символов 'L' и 'P'. Если $i$-я буква этой строки — 'L', то $i$-й муравей изначально смотрит влево. В противном случае, если эта буква — 'P', муравей смотрит вправо.

Выходные данные

В единственной строке стандартного вывода должны быть выведены $n$ чисел, разделенных пробелами. $i$-е из этих чисел должно быть равно количеству столкновений $i$-го муравья.

Примеры

Входные данные 1

6
LPPLPL

Выходные данные 1

0 1 3 3 2 1

Примечание

Первый муравей изначально смотрит влево и никогда не столкнется ни с одним другим. Последний муравей столкнется с пятым муравьем в точке $5.5$, после чего начнет двигаться вправо и больше никогда не столкнется. Третий муравей, после столкновения с четвертым в точке $3.5$, начнет двигаться влево. Второй муравей столкнется с ним в точке $3$, после чего повернет влево и больше никогда не столкнется.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.