Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
123949 | 周歆童(初一23 | 翻转棋盘 | C++ | 解答错误 | 56 | 0 MS | 244 KB | 701 | 2024-01-23 10:28:40 |
#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; }