QOJ.ac

QOJ

実行時間制限: 1 s メモリ制限: 1024 MB 満点: 10

#8401. Fourmis

統計

Sur une droite numérique se trouvent $n$ fourmis, la $i$-ième étant située au point $i$. Chaque fourmi regarde vers la droite (dans le sens des coordonnées croissantes) ou vers la gauche (dans le sens des coordonnées décroissantes). Les fourmis sont si petites que nous pouvons les considérer comme des points.

Au signal, toutes les fourmis commencent à marcher à une vitesse unitaire constante dans la direction vers laquelle elles regardent. Si deux fourmis entrent en collision (se retrouvent au même point), elles rebondissent l'une sur l'autre, c'est-à-dire qu'elles changent toutes deux de direction et continuent leur chemin. On peut démontrer qu'après un certain temps, il n'y aura plus aucune collision. Êtes-vous capable d'écrire un programme qui calcule, pour chaque fourmi, combien de fois elle rebondira sur d'autres fourmis ?

Entrée

La première ligne de l'entrée standard contient un entier $n$ ($1 \le n \le 300\,000$), représentant le nombre de fourmis.

La deuxième ligne de l'entrée standard contient un mot de longueur $n$ composé uniquement des caractères « L » et « P ». Si la $i$-ième lettre de ce mot est « L », alors la $i$-ième fourmi regarde initialement vers la gauche. Sinon, si cette lettre est « P », la fourmi regarde vers la droite.

Sortie

La seule ligne de la sortie standard doit contenir $n$ nombres séparés par des espaces. Le $i$-ième de ces nombres doit être égal au nombre de rebonds de la $i$-ième fourmi.

Exemples

Entrée 1

6
LPPLPL

Sortie 1

0 1 3 3 2 1

Remarque

La première fourmi regarde initialement vers la gauche et ne rebondira jamais sur aucune autre. La dernière fourmi entrera en collision avec la cinquième fourmi au point 5,5, après quoi elle commencera à marcher vers la droite et ne s'arrêtera jamais. La troisième fourmi, après avoir rebondi sur la quatrième au point 3,5, commencera à marcher vers la gauche. La deuxième fourmi rebondira sur elle au point 3, après quoi elle se tournera vers la gauche et ne cessera jamais de marcher.

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.