2,3,5,6,8可以AC
看了测试点1的数据,运行出来是58啊,可是判WA
def check(turn,x,y):
if turn ==0 and m[x-1][y]!='*':
return 1
elif turn ==1 and m[x][y+1]!='*':
return 1
elif turn ==2 and m[x+1][y]!='*':
return 1
elif turn ==3 and m[x][y-1]!='*':
return 1
else:
return 0
def move(turn,x,y):
if turn==0:
return x-1,y
if turn==1:
return x,y+1
if turn==2:
return x+1,y
if turn==3:
return x,y-1
m=[[0 for i in range(12)]for i in range(12)]
v=[0]*1600005
f=[0,0,0]
c=[0,0,0]
ans=0
for i in range(0,12):
m[0][i] = '*'
m[11][i] = '*'
for i in range(1,11):
srt=input()
srt='*'+srt+'*'
m[i]=list(srt)
for i in range(0,12):
for j in range(0,12):
if m[i][j]=='F':
f[1]=i
f[2]=j
if m[i][j]=='C':
c[1]=i
c[2]=j
turn_f=0
turn_c=0
while not(f[1]==c[1] and f[2]==c[2]):
t=f[1]+f[2]*10+c[1]*100+c[2]*1000+turn_c*10000+turn_f*100000
if v[t]==1:
print(0)
exit()
v[t]=1
if check(turn_f,f[1],f[2]):
f[1], f[2]=move(turn_f,f[1],f[2])
else:
turn_f=(turn_f+1)%4
if check(turn_c,c[1],c[2]):
c[1], c[2]=move(turn_c,c[1],c[2])
else:
turn_c=(turn_c+1)%4
ans+=1
print(ans)