CF2169B Drifting Away

题目描述

在 Monocarp 的房子前有一条河流,可以用一条由若干格子组成的带状区域来表示。在一些格子中有强水流,而在另外一些格子中没有水流。这可以用一个字符串 $s$ 来表示,包含以下字符: - 小于号(''):表示水流向右; - 星号('*'):表示无水流。 一开始,Monocarp 可以选择河流上的任意一个格子作为他的起点。 如果 Monocarp 所在的格子有水流,则他会被水流带到相邻的下一个格子(水流方向指向的格子)。如果没有相邻的格子(例如,在第 $1$ 个格子有左向水流,或者在第 $n$ 个格子有右向水流),Monocarp 就会被冲到岸上。每移动一次耗时一分钟。 如果 Monocarp 所在的格子没有水流,他可以选择划向左边或右边的相邻格子。如果所选方向没有相邻格子,他就会上岸。每次移动同样耗时一分钟。 Monocarp 想要在河流上航行尽可能久。如果他可以无限航行,请输出 $-1$;否则,输出 Monocarp 在冲上岸前最多能在河流上航行的时间。

输入格式

第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。 每个测试用例仅有一行,包含一个字符串 $s$($1 \le |s| \le 3 \times 10^5$),仅包含字符 ''(右流)、'*'(无流)。它们的 ASCII 码分别是 $60$、$62$ 和 $42$。 额外限制:所有测试用例中所有字符串 $s$ 的总长度不超过 $3 \times 10^5$。

输出格式

对于每个测试用例,输出一个整数: - 如果 Monocarp 可以无限航行,输出 $-1$; - 否则,输出 Monocarp 最多能在河流上航行的时间。

说明/提示

由 ChatGPT 5 翻译