提交时间:2024-01-23 09:17:40
运行 ID: 123738
#include<bits/stdc++.h> using namespace std; int main(){ int q; cin>>q; while(q--){ char c[11][11]; int n = 10; int mi,mj,ci,cj,dm =-1,ym=0,dc=1,yc=0; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ cin>>c[i][j]; if(c[i][j]=='M'){ mi = 1;mj = j; }else if(c[i][j]=='C'){ ci = i;cj=j; } } } int cnt = 0; while(cnt<=99&&mi!=ci&&mj!=cj){ if(mi==n){ dm = 0;ym = -1; } if(mi==1){ dm = 0;ym = 1; } if(mj == 1){ ym = 0;dm = -1; } if(mj == n){ ym = 0;dm = 1; } if(ci==n){ dc = 0;yc = -1; } if(ci==1){ dc = 0;yc = 1; } if(cj == 1){ yc = 0;dc = -1; } if(cj == n){ yc = 0;dc = 1; } if(c[mi+dm][mj+ym] == '*'){ if(dm == 0&&ym == -1){ ym = 0;dm = -1; } if(dm == 0&&ym == 1){ ym = 0;dm =1; } if(dm==-1&&ym == 0){ dm = 0;ym = 1; } if(dm == 1&&ym == 0){ ym =-1; dm = 0; } }if(c[ci+dc][cj+yc] == '*'){ if(dc == 0&&yc == -1){ yc = 0;dc = -1; } if(dc == 0&&yc == 1){ yc = 0;dc =1; } if(dc==-1&&yc == 0){ dc = 0;yc = 1; } if(dc == 1&&yc == 0){ yc =-1; dc = 0; } } mi+=dm; mj+=ym; ci+=dc; cj+=yc; cnt++; } if(cnt == 100){ cout<<"-1\n"; } else{ cout<<cnt<<'\n'; } } return 0; }