CF316F3 Suns and Rays

题目描述

海狸喜欢画太阳,他们准备设计一个程序来处理他的画作。给你一张海理的画,画中有2种颜色:背景色:蓝色,太阳色:黄色。 你需要计算图像中太阳的数量,并计算每一个太阳的光线数量。太阳是任意旋转的带有光线的椭圆。光线是连接太阳边界上的点与太阳外的点的线段。 图一:所有太阳都是圆的。 图二:所有的太阳都是椭圆的,而且它们的轴与坐标轴平行。 图三:所有的太阳都是可以任意旋转的椭圆。 保证以下规则: - 两个太阳不会在一个点上 - 射线的宽度为3 - 太阳的坐标不小于40,且不大于200。 - 两条光线不会相交 - 光线的长度不小于10且不大于30

输入格式

第一行两个整数$h$,$w$(1$\leq$ $h$,$w$$\leq$ 1600) 分别表示这幅画的长和宽。 接下来的$h$行,每行$w$个整数,用空格分开,表示海狸的画。0代表背景色(蓝色),1代表太阳颜色(黄色)

输出格式

第一行包含一个数字$k$,表示太阳的个数。第二行输出$k$个整数,对应每个太阳的射线数,必须按照升序输出。 本题分为三个子问题。 - 子问题1:输入的所有太阳都是圆形,30分。 - 子问题2:输入的所有的太阳都是椭圆的,而且它们的轴与坐标轴平行,40分。 - 子问题3:所有的太阳都是可以任意旋转的椭圆,30分。 本题翻译由@[_tommysun_](https://www.luogu.com.cn/user/203452) 提供。

说明/提示

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.