?? 3695135_wa.cc
字號:
#include <iostream>
#include <bitset>
using namespace std;
int n, a[7][8], b[7][8], result[7][8];
inline void change(int a[7][8], int i, int j)
{
if(a[i][j]==0) a[i][j]=1; else a[i][j]=0;
if(a[i-1][j]==0) a[i-1][j]=1; else a[i-1][j]=0;
if(a[i+1][j]==0) a[i+1][j]=1; else a[i+1][j]=0;
if(a[i][j-1]==0) a[i][j-1]=1; else a[i][j-1]=0;
if(a[i][j+1]==0) a[i][j+1]=1; else a[i][j+1]=0;
}
int main()
{
scanf("%d", &n);
int ca=1;
while(n--)
{
for(int i=1; i<6; i++)
for(int j=1; j<7; j++)
scanf("%d", &a[i][j]);
for(int i=0; i<32; i++)
{
bitset<6> bt(i);
for(int s=1; s<6; s++)
for(int t=1; t<7; t++)
{
b[s][t]=a[s][t];
result[s][t]=0;
}
for(int s=0; s<6; s++)
if(bt.test(s))
{
change(b, 1, s+1);
result[1][s+1]=1;
}
for(int s=2; s<6; s++)
for(int t=1; t<7; t++)
if(b[s-1][t]==1)
{
change(b, s, t);
result[s][t]=1;
}
bool flag=true;
for(int s=1; s<7; s++)
if(b[5][s]==1)
flag=false;
if(flag)
break;
}
printf("PUZZLE #%d\n", ca++);
for(int i=1; i<6; i++)
{
for(int j=1; j<7; j++)
printf("%d ", result[i][j]);
printf("\n");
}
}
return 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -