如果有一行一列全都是E,那么必然是不能净化的。其他的话只要输出每一行或者每一列第一个正常的就好了
#include <iostream>
using namespace std;
const int maxn=110;
char map[maxn][maxn];
int row[maxn],column[maxn];
int n;
int main(){
cin >> n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>map[i][j];
}
}
int cnt=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(map[i][j]=='.'){
cnt++;
row[i]=j;
break;
}
}
}
if(cnt==n){
for(int i=1;i<=n;i++){
cout<<i<<' '<<row[i]<<endl;
}
return 0;
}
cnt=0;
for(int j=1;j<=n;j++){
for(int i=1;i<=n;i++){
if(map[i][j]=='.'){
cnt++;
column[j]=i;
break;
}
}
}
if(cnt==n){
for(int i=1;i<=n;i++){
cout<<column[i]<<' '<<i<<endl;
}
return 0;
}
cout<<-1<<endl;
}