测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A72027. 快递无人机

编程题 入门

题目描述

Dr. X 制作了一台快递无人机,正在测试投送包裹。

投送的目标区域是一个圆形空地,它的边界在地图上用星号 * 标出。地图上的空白区域用半角点号 . 表示,每个包裹的落点用小写字母 o 标记。下图是一个例子:

........o
...***...
..*****..
..*...*..
..*.o.*..
..*...*..
..*****..
...***...
.........

上图中,* 围成的区域代表圆形空地。包裹 o 如果落在边界围成的区域内部,就是一次正确投送。Dr. X 想请你统计正确投送的包裹数量。包裹要么在圆内,要么在圆外,保证不会在圆形的边界上。

输入格式

输入第一行包含两个空格分隔的整数 nm,表示地图的行数和列数。接下来 n 行,每行 m 个字符,描述整张地图。字符只包含 *(边界)、.(空白)和 o(包裹)。保证 * 恰好围成一个闭合的环形边界,且地图中至少有一个 o

输出格式

输出一个整数,表示落在圆形区域内部的包裹数量。

输入输出样例

输入 #1
9 9
........o
...***...
..*****..
..*...*..
..*.o.*..
..*...*..
..*****..
...***...
.........
输出 #1
1
输入 #2
12 13
.............
....*******..
...*.......*.
...*.......*.
...*..o....*.
...*.......*.
...*...o...*.
...*....o..*.
...*.......*.
....*******..
..o..........
.o...........
输出 #2
3

说明/提示

  • 对于 40\% 的数据,满足 n, m \leq 10
  • 对于 100\% 的数据,满足 3 \leq n, m \leq 50