已结束 GESP挑战赛#6

A3084 | Drogon

来源官方 / 2024
时间限制1s
内存限制128MB
通过 / 提交0/0

题目描述

时间限制:1000ms

空间限制:128mb


Yuilice拔出了魔剑,骑着心爱的骏马"托雷特"在幽影之地的平原上漫无目的奔驰着,一道巨大的黑影一瞬间笼罩了整片平原,Yuilice抬头一看。

一头巨大的黑龙正瞪着它硕大的眼珠凝视着Yuilice,嘴边的尖牙上下摩擦着。



(图片来源于网络)

巨龙自称为飞龙"尖牙",他已经许久没有见到人类了,于是他决定一口火烧掉Yuilice。但是Yuilice手里的魔剑亚托克斯让多雷特感到忌惮,于是他决定与Yuilice玩一个小游戏。

---

飞龙尖牙口吐魔术火焰,一团团火焰悬浮在了地面上散发着恐怖的热量。

这些火球如果放置不管,会发生巨大的爆炸,将Yuilice炸飞,但是如果能让他们并成一排,那么Yuilice就可以挥动魔剑亚托克斯把他们全部砍碎。

我们可以用一个长度为$n$的字符串来表示当时的情景,字符串由.(空地)*(火球)组成,Yuilice可以施展移动魔法将一个火球向左或者向右移动一格。只要所有火球排成一排,Yuilice就可以全部砍碎。

注意!排成一排的定义被视为任何火球之间都不存在着空地!

例如,现在有着一个长度$n=6$的字符串,并且表示为**.*..,那么可能出现以下场景:

- 位于 $4$ 位置的火球向右移动,字符串的状态为**..*.
- 在 $2$ 位置的火球向右移动,字符串的状态为:*.*.*.
- 位于 $1$ 位置的火球向右移动,字符串的状态为:.**.*.
- 位于 $3$ 位置的火球向右移动,字符串的状态为.*.**.
- 在 $2$ 位置的火球向右移动,字符串的状态为:..***.
- 火球排为一列,Yuilice挥动魔剑砍碎火球,成功幸存。

现在Yuilice为了保存体力对付尖牙,需要使用最少次数的移动魔法保存体力,那么请问他最少需要使用几次移动魔法呢

输入格式

第一行包含一个整数 $n$ ( $1 \le n \le 10^6$ )。

第二行包含一个长度为 $n$ 的字符串,由字符.(空地)和*(火球)组成--即字符串描述。

输出格式

输出排成一排所需的最少移动次数。

输入输出样例

输入 #1
6
**.*..
输出 #1
1
输入 #2
10
*.*...*.**
输出 #2
9
输入 #3
3
.*.
输出 #3
0
输入 #4
3
...
输出 #4
0
C++ 编辑器
输入
输出