67分 3个TLE(应该就是输出0的情况不会搞) 求改
#include<bits/stdc++.h>
using namespace std;
struct hulk
{
int h;
int z;
char b;
};
int main()
{
hulk f, c;
int time = 0;
char m[10][10];
for(int i = 1;i <= 10;i++)
{
for(int j = 1;j <= 10;j++)
{
cin >> m[i][j];
}
}
for(int i = 1;i <= 10;i++)
{
for(int j = 1;j <= 10;j++)
{
if(m[i][j] == 'F')
{
f.h = i;
f.z = j;
f.b = 'b';
}
if(m[i][j] == 'C')
{
c.h = i;
c.z = j;
c.b = 'b';
}
}
}
for(int i = 1;;i++)
{
time++;
if((f.b == 'b'))
{
if(m[f.h - 1][f.z] == '*' || f.h - 1 == 0)
{
f.b = 'd';
}
else
{
f.h -= 1;
}
}
else if((f.b == 'n'))
{
if(m[f.h + 1][f.z] == '*' || f.h + 1 == 11)
{
f.b = 'x';
}
else
{
f.h += 1;
}
}
else if((f.b == 'x'))
{
if(m[f.h][f.z - 1] == '*' || f.z - 1 == 0)
{
f.b = 'b';
}
else
{
f.z -= 1;
}
}
else if((f.b == 'd'))
{
if(m[f.h][f.z + 1] == '*' || f.z + 1 == 11)
{
f.b = 'n';
}
else
{
f.z += 1;
}
}
if((c.b == 'b'))
{
if(m[c.h - 1][c.z] == '*' || c.h - 1 == 0)
{
c.b = 'd';
}
else
{
c.h -= 1;
}
}
else if((c.b == 'n'))
{
if(m[c.h + 1][c.z] == '*' || c.h + 1 == 11)
{
c.b = 'x';
}
else
{
c.h += 1;
}
}
else if((c.b == 'x'))
{
if(m[c.h][c.z - 1] == '*' || c.z - 1 == 0)
{
c.b = 'b';
}
else
{
c.z -= 1;
}
}
else if((c.b == 'd'))
{
if(m[c.h][c.z + 1] == '*' || c.z + 1 == 11)
{
c.b = 'n';
}
else
{
c.z += 1;
}
}
if(f.h == c.h && f.z == c.z)
{
cout << time << endl;
break;
}
}
return 0;
}