#include<bits/stdc++.h>
using namespace std;
int sum,xf,yf,df,xc,yc,dc,test;//0北,1东,2南,3西
int movex[4]={-1,0,1,0},movey[4]={0,1,0,-1};
bool s[330005];
char mp[10][10];
int main()
{
for(int i=0;i<10;i++)
{
scanf("%s",mp[i]);
}
/*起始位置有问题
for(int i=0;i<10;i++)
{
for(int k=0;k<10;k++)
{
scanf("%c",&mp[i][k]);
if(mp[i][k]=='C') xc=i,yc=k;
if(mp[i][k]=='F') xf=i,yf=k;
}
}*/
for(int i=0;i<10;i++)
for(int j=0;j<10;j++)
{
if(mp[i][j]=='C')
{
xc=i,yc=j;
}
if(mp[i][j]=='F')
{
xf=i,yf=j;
}
}
dc=df=0;
while(1)
{
test=xf+yf*10+xc*100+yc*1000+df*10000+dc*100000;
if(s[test])
{
printf("0");
break;
}
s[test]=true;
if(xc==xf&&yc==yf)
{
printf("%d",sum);
break;
}
if(mp[xc+movex[dc]][yc+movey[dc]]=='*'||(xc+movex[dc]>=10)||(yc+movey[dc]>=10)||(xc+movex[dc]<0)||(yc+movey[dc]<0))
dc=(dc+1)%4;
else
{
xc+=movex[dc];
yc+=movey[dc];
}
if(mp[xf+movex[df]][yf+movey[df]]=='*'||(xf+movex[df]>=10)||(yf+movey[df]>=10)||(xf+movex[df]<0)||(yf+movey[df]<0))
df=(df+1)%4;
else
{
xf+=movex[df];
yf+=movey[df];
}
sum++;
}
return 0;
}
为什么第一个样例在自己跑没问题,一提交就re,另外scanf为什么也会出错