初一16班 麦睿生 • 4个月前
#include<bits/stdc++.h>
using namespace std;
char a[15][15];
int i,j,f1,f2,c1,c2,tf1=-1,tf2=0,tc1=-1,tc2=0,t,k;
bool ch;
int main()
{
scanf("%d",&t);
for(k=1;k<=t;k++)
{
ch=false;
for(i=1;i<=10;i++)
{
for(j=1;j<=10;j++)
{
cin>>a[i][j];
if(a[i][j]=='C')
{
f1=i;
f2=j;
}
else if(a[i][j]=='M')
{
c1=i;
c2=j;
}
}
}
tf1=-1,tf2=0,tc1=-1,tc2=0;
for(i=1;i<=100;i++)
{
if(f1+tf1>=1&&f1+tf1<=10&&f2+tf2>=1&&f2+tf2<=10&&a[f1+tf1][f2+tf2]!='*')
{
f1+=tf1;
f2+=tf2;
}
else
{
if(tf1==-1&&tf2==0)
{
tf1=0;
tf2=1;
}
else if(tf1==0&&tf2==1)
{
tf1=1;
tf2=0;
}
else if(tf1==1&&tf2==0)
{
tf1=0;
tf2=-1;
}
else if(tf1==0&&tf2==-1)
{
tf1=-1;
tf2=0;
}
}
if(c1+tc1>=1&&c1+tc1<=10&&c2+tc2>=1&&c2+tc2<=10&&a[c1+tc1][c2+tc2]!='*')
{
c1+=tc1;
c2+=tc2;
}
else
{
if(tc1==-1&&tc2==0)
{
tc1=0;
tc2=1;
}
else if(tc1==0&&tc2==1)
{
tc1=1;
tc2=0;
}
else if(tc1==1&&tc2==0)
{
tc1=0;
tc2=-1;
}
else if(tc1==0&&tc2==-1)
{
tc1=-1;
tc2=0;
}
}
if(f1==c1&&f2==c2)
{
printf("%d\n",i);
ch=true;
break;
}
}
if(!ch)printf("-1\n");
}
return 0;
}
评论: