A24217.Drogon

普及-

官方

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

时间限制:1000ms
空间限制:128mb

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

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

(图片来源于网络)

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


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

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

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

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

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

  • 位于 44 位置的火球向右移动,字符串的状态为**..*.
  • 22 位置的火球向右移动,字符串的状态为:*.*.*.
  • 位于 11 位置的火球向右移动,字符串的状态为:.**.*.
  • 位于 33 位置的火球向右移动,字符串的状态为.*.**.
  • 22 位置的火球向右移动,字符串的状态为:..***.
  • 火球排为一列,Yuilice挥动魔剑砍碎火球,成功幸存。

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

输入格式

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

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

输出格式

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

输入输出样例

  • 输入#1

    6
    **.*..

    输出#1

    1
  • 输入#2

    10
    *.*...*.**

    输出#2

    9
  • 输入#3

    3
    .*.

    输出#3

    0
  • 输入#4

    3
    ...

    输出#4

    0

说明/提示

对于40%40\%的数据,1n1031 \leq n \leq 10^3

对于100%100\%的数据,1n1061 \leq n \leq 10^6

首页