题号:NC20644
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
r神在和小b比赛玩一个名为“消消乐”的游戏,在一个n*m的棋盘上,一些棋子分布在格点上,游戏玩家有一个名为超蓝光波的武器,可以消除一行或者一列的所有棋子,使用超蓝光波需要耗费一点能量,消除完所有的棋子之后,花费能量越少得分越高。
r神为了超过排名第一的小b,夺得荣誉称号“天下第一”,他需要寻求你的帮助,他希望知道最少需要使用多少次“超蓝光波”,以及在哪行、哪列使用。
输入描述:
第一行两个正整数n(n<=2000),m(m<=2000);
接下来n行,每行m个字符,表示棋盘,其中“.”表示该处没有棋子,“*”表示该处有棋子,棋子个数<=100000
输出描述:
第一行输出一个正整数,表示最少需要使用的“超蓝光波”次数
第二行N+1个正整数,第一个数为N,表示需要消掉的行数,从小到大输出每个需要消除的行号
第三行M+1个正整数,第一个数为M,表示需要消掉的列数,从小到大输出每个需要删除的列号
如果有多种情况,任意输出一种即可。