#include<bits/stdc++.h>
using namespace std;
using i64 = long long;
using u64 = unsigned long long;
using u32 = unsigned;
char m[12][12];
int farmer[3];
int cow[3];
bool zt[200000];
int ans;
void move(int x, int y, int dir, int type)
{
if(dir == 0)
{
if(m[x-1][y] == '*')
{
if(type == 0)
{
farmer[0] = 1;
}else
{
cow[0] = 1;
}
}else if(type == 0)
{
farmer[1]--;
}else
{
cow[1]--;
}
}
if(dir == 1)
{
if(m[x][y+1] == '*')
{
if(type == 0)
{
farmer[0] = 2;
}else
{
cow[0] = 2;
}
}else if(type == 0)
{
farmer[2]++;
}else
{
cow[2]++;
}
}
if(dir ==2)
{
if(m[x+1][y] == '*')
{
if(type == 0)
{
farmer[0] = 3;
}else
{
cow[0] = 3;
}
}else if(type == 0)
{
farmer[1]++;
}else
{
cow[1]++;
}
}
if(dir == 3)
{
if(m[x][y-1] == '*')
{
if(type == 0)
{
farmer[0] = 0;
}else
{
cow[0] = 0 ;
}
}else if(type == 0)
{
farmer[2]--;
}else
{
cow[2]--;
}
}
}
bool res()
{
if(farmer[1] == cow[1] && farmer[2] == cow[2] )
{
return false;
}else
{
return true;
}
}
int main()
{
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
for(int i = 0; i <= 11 ; i++)
{
m[i][0] = '*';
m[i][11] = '*';
}
for(int i = 1 ; i <= 10; i++)
{
m[0][i] = '*';
m[11][i] = '*';
}
for(int i = 1; i <= 10; i++)
{
for(int j = 1; j <= 10; j++)
{
cin >> m[i][j];
if(m[i][j] == 'F')
{
farmer[1] = i;
farmer[2] = j;
}
if(m[i][j] == 'C')
{
cow[1] = i;
cow[2] = j;
}
}
}
while(res())
{
int spe = farmer[1] + farmer[2]*10 + cow[1]*100+ cow[2]*1000 + farmer[0] *10000+cow[0]*40000;
if(zt[spe])
{
cout << 0 << endl;
return 0;
}
zt[spe] = 1;
move(farmer[1] , farmer[2] , farmer[0], 0);
move(cow[1] , cow[2] , cow[0] , 1);
ans++;
}
cout << ans << endl;
return 0;
}
04-20
683
12-16
147
08-21
607
03-09
391
07-28