题目描述
blablabla
样例
blablabla
C++ 代码
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
const int N = 5;
char st[N][N],path[N][N];
void turn_one(int x, int y)
{
if(path[x][y] == '-') path[x][y] = '+';
else path[x][y] = '-';
}
void turn_all(int x, int y)
{
for(int i = 0; i < 4 ; i ++ )
{
turn_one(x,i);
turn_one(i,y);
}
turn_one(x,y);
}
int main()
{
for(int i = 0; i < 4; i ++ ) cin >> st[i];
int res = 1e5;
int ans = 0;
for(int op = 0 ; op < 1 << 16; op++)
{
int steps = 0;
memcpy(path,st,sizeof st);
for(int i = 0; i < 4; i ++ )
for(int j = 0; j < 4; j ++ )
if(op>>(4*i + j)&1)
{
steps++;
turn_all(i,j);
}
bool it = true;
for(int i = 0; i < 4 ; i ++ )
for(int j = 0; j < 4 ; j ++ )
if(path[i][j] != '-')
it = false;
if(it)
{
res = min(res,steps);
ans = op;
}
}
cout << res << endl;
for(int i = 0; i < 4 ; i ++ )
for(int j = 0; j < 4 ; j ++ )
{
if(ans>>(4*i + j)&1) cout << i + 1 << " " << j + 1 << endl;
}
return 0;
}