#include <bits/stdc++.h>
using namespace std;
char dt[15][15];
int hc,lc,hf,lf,cnt,idc,idf,tdz;
int x[4]={-1,0,1,0};
int y[4]={0,1,0,-1};
bool zt[160005];
void move(int x1,int y1,int id,int h){
x1+=x[id];
y1+=y[id];
if(dt[x1][y1]=='*') if(h==0) idf=(idf+1)%4; else idc=(idc+1)%4;
else if(h==0) hf=x1,lf=y1;else hc=x1,lc=y1;
}
int main(){
for(int i=0;i<=11;i++){
dt[0][i]='*';
dt[11][i]='*';
dt[i][0]='*';
dt[i][11]='*';
}
for(int i=1;i<=10;i++){
for(int j=1;j<=10;j++){
cin>>dt[i][j];
if(dt[i][j]=='C') hc=i,lc=j;
if(dt[i][j]=='F') hf=i,lf=j;
}
}
while(1){
move(hf,lf,idf,0);
move(hc,lc,idc,1);
tdz=hf+lf*10+hc*100+lc*1000+idf*10000+idc*40000;
if(zt[tdz]){
cnt=0;
break;
}
zt[tdz]=1;
cnt++;
if(hc==hf&&lc==lf){
break;
}
}
cout<<cnt<<endl;
return 0;
}
第4个测试点总是WA,但是找不出哪里错,麻烦大佬指点指点!!!感谢!