提交时间:2024-01-23 10:28:40

运行 ID: 123949

#include<bits/stdc++.h> using namespace std; char f(char a){ if(a=='w')return 'b'; return 'w'; } char a[6][6]; int ans=0x7fffffff; void dfs(int l,int c,int step){ if(l==4&&c>4){ for(int i=1;i<=4;i++){ for(int j=1;j<=4;j++){ if(a[i][j]!=a[1][1])return; } } ans=min(ans,step); return; } if(c>4){ c=1; l++; } dfs(l,c+1,step); a[l-1][c]=f(a[l-1][c]); a[l][c-1]=f(a[l][c-1]); a[l][c]=f(a[l][c]); a[l][c+1]=f(a[l][c+1]); a[l+1][c]=f(a[l+1][c]); dfs(l,c+1,step+1); } int main(){ for(int i=1;i<=4;i++){ for(int j=1;j<=4;j++){ cin>>a[i][j]; } } dfs(1,1,0); if(ans<0x7fffffff)cout<<ans; else cout<<"Impossible"; return 0; }