提交时间:2024-01-21 14:06:57
运行 ID: 120959
#include<bits/stdc++.h> using namespace std; int n,cx,cy,mx,my,cd,md,ans,dx[4]={-1,0,1,0},dy[4]={0,1,0,-1}; char a[11][11]; int main(){ cin>>n; while(n--){ cd=md=ans=0; for(int i=1;i<=10;i++){ for(int j=1;j<=10;j++){ cin>>a[i][j]; if(a[i][j]=='C'){ cx=i; cy=j; } if(a[i][j]=='M'){ mx=i; my=j; } } } while((cx!=mx||cy!=my)&&ans<=100){ if(cx+dx[cd]<=0||cx+dx[cd]>10||cy+dy[cd]<=0||cy+dy[cd]>10||a[cx+dx[cd]][cy+dy[cd]]=='*')cd=(cd+1)%4; else{ cx+=dx[cd]; cy+=dy[cd]; } if(mx+dx[md]<=0||mx+dx[md]>10||my+dy[md]<=0||my+dy[md]>10||a[mx+dx[md]][my+dy[md]]=='*')md=(md+1)%4; else{ mx+=dx[md]; my+=dy[md]; } ans++; //cout<<cx<<" "<<cy<<" "<<cd<<" "<<mx<<" "<<my<<" "<<md<<endl; } if(ans<=100)cout<<ans<<endl; else cout<<"-1\n"; } return 0; }