分析
模拟过程
C++ 代码
#include<bits/stdc++.h>
using namespace std;
int g[4][4],ze;
bool st[10];
map<int,int> mp;
int main()
{
mp[6]=10000;mp[7]=36;mp[8]=720;mp[9]=360;mp[10]=80;mp[11]=252;mp[12]=108;mp[13]=72;mp[14]=54;mp[15]=180;
mp[16]=72;mp[17]=180;mp[18]=119;mp[19]=36;mp[20]=306;mp[21]=1080;mp[22]=144;mp[23]=1800;mp[24]=3600;
for(int i=1;i<=3;i++)
for(int j=1;j<=3;j++)
{
cin>>g[i][j];
st[g[i][j]]=1;
}
for(int i=1;i<=9;i++)
{
if(!st[i]){
ze=i;
break;
}
}
for(int i=1;i<=3;i++)
for(int j=1;j<=3;j++)
{
if(g[i][j]==0){g[i][j]=ze;break;}
}
int x,y;
cin>>x>>y;
cout<<g[x][y]<<endl;
cin>>x>>y;
cout<<g[x][y]<<endl;
cin>>x>>y;
cout<<g[x][y]<<endl;
cin>>x;
int t=0;
if(x<=3){
for(int i=1;i<=3;i++) t+=g[x][i];
}
else if(x<=6){
for(int i=1;i<=3;i++) t+=g[i][x-3];
}
else if(x==7){
for(int i=1;i<=3;i++)
t+=g[i][i];
}
else{
for(int i=1;i<=3;i++)
t+=g[i][4-i];
}
cout<<mp[t];
return 0;
}