include[HTML_REMOVED]
include[HTML_REMOVED]
include[HTML_REMOVED]
include[HTML_REMOVED]
include[HTML_REMOVED]
define x first
define y second
using namespace std;
typedef pair[HTML_REMOVED] PII;
const int N=5;
char g[N][N],backup[N][N];
int get(int x,int y)
{
return x*4+y;
}
void turn_one(int x,int y)
{
if(g[x][y]==’+’) g[x][y]=’-‘;
else g[x][y]=’+’;
}
void turn_all(int x,int y)
int main()
{
for(int i=0;i<4;i)
for(int j=0;j<4;j)
cin>>g[i][j];
vector<PII> res;//记录方案所需要的结构
for(int op=0;op<1<<16;op++)//op<1<<16的意思是2的16次方
{
vector<PII> temp; //temp是里面存的方案,先备份一下,因为这并不是最终方案,我们要把所有方案试一下,求最优方案
memcpy(backup,g,sizeof g);
for(int i=0;i<4;i++)
for(int j=0;j<4;j++)
if(op>>get(i,j)&1)
{
temp.push_back({i,j});
turn_all(i,j);
}
bool has_closed=false;
for(int i=0;i<4;i++)
for(int j=0;j<4;j++)
if(g[i][j]=='+') has_closed=true;
if(has_closed==false)
{
if(res.empty()||res.size()>temp.size()) res=temp;
}
memcpy(g,backup,sizeof g);
}
cout<<res.size()<<endl;
for(auto op:res) cout<<op.x+1<<" "<<op.y+1<<endl;
return 0;
}