#include<bits/stdc++.h>
using namespace std;
const int MAXN = 100005;
bool M[10][10];
int X[MAXN][6];
int main(){
char t;
int ans = 0,F = 0,fi,fj,C = 0,ci,cj,cix,cjx,fix,fjx;
for(int i = 0;i < 10;i++){
for(int j = 0;j < 10;j++){
t = getchar();
switch(t){
case '*':M[i][j] = 1;break;
case 'C':ci = i;cj = j;cix = i;cjx = j;break;
case 'F':fi = i;fj = j;fix = i;fjx = j;break;
}
}
}
while(ans <= 100000){
ans++;
switch(F){
case 0:fi--;break;
case 1:fj++;break;
case 2:fi++;break;
case 3:fj--;break;
}
if(M[fi][fj] || fi < 0 || fi >= 10 || fj < 0 || fj >= 10){
switch(F){
case 0:fi++;break;
case 1:fj--;break;
case 2:fi--;break;
case 3:fj++;break;
}
F = (F + 1) % 4;
}
switch(C){
case 0:ci--;break;
case 1:cj++;break;
case 2:ci++;break;
case 3:cj--;break;
}
if(M[ci][cj] || ci < 0 || ci >= 10 || cj < 0 || cj >= 10){
switch(C){
case 0:ci++;break;
case 1:cj--;break;
case 2:ci--;break;
case 3:cj++;break;
}
C = (C + 1) % 4;
}
//cout << ans << " | " << ci << " " << cj << " " << fi << " " << fj << " " << endl;
if(ci == fi && cj == fj){
cout << ans << endl;
return 0;
}
}
cout << 0;
return 0;
}
测试样例发现会在(6,7)的位置擦肩而过