CF316F1 Suns and Rays
题目描述
聪明的海狸对绘画产生了兴趣。它画太阳。然而,某一刻,聪明的海狸意识到只是画太阳很无聊。因此,它决定设计一个能处理它的绘画的程序。你将得到一个由海狸画的图片。图片中会有两种颜色:一种用于背景,一种用于太阳。你的任务是计算图片中太阳的数量,并为每个太阳计算射线的数量。
太阳是任意旋转的带有射线的椭圆。射线是连接椭圆边界上的点与椭圆外部某点的线段。
图一:太阳都是圆的。
图二:在这个图像中,所有的太阳都是椭圆,它们的轴与坐标轴平行。
图三:在这个图像中,所有的太阳都是旋转的椭圆。
可以确保:
- 没有两个太阳有共同点。
- 光线的宽度为 $3$ 像素。
- 椭圆太阳的轴长度将介于 $40$ 到 $200$ 像素之间。
- 任意两条射线不相交。
- 所有射线的长度将在 $10$ 到 $30$ 个像素之间。
输入格式
第一行包含两个整数 $h$ 和 $w$,分别表示图像的高度和宽度 $(1 \le h, w \le 1600)$。接下来的 $h$ 行将每行包含 $w$ 个用空格分隔的整数。它们描述了 Smart Beaver 的图片。每个数字要么等于 $0$(表示图像的背景),要么等于 $1$(表示太阳的颜色)。
本题分数分布如下:
- 其中 $30$ 分所有太阳都是圆的。
- 其中 $70$ 分图像上的所有太阳都是与坐标轴平行的椭圆形状。
- 其中 $100$ 分图像上的所有太阳都是椭圆形状,它们可以任意旋转。
输出格式
第一行必须包含一个数字 $k$,表示海狸图像上太阳的数量。第二行必须包含恰好 $k$ 个以空格分隔的整数,对应于每个太阳上的射线数量。第二行的数字必须按递增顺序排列。
### **说明/提示**
对于每个复杂度级别提供一个示例。你可以在 [http://www.abbyy.ru/sun.zip](http://www.abbyy.ru/sun.zip) 下载这些示例。
说明/提示
For each complexity level you are suggested a sample in the initial data. You can download the samples at http://www.abbyy.ru/sun.zip.