Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
123758 刘嘉乐 猫和老鼠 C++ 解答错误 10 0 MS 244 KB 1653 2024-01-23 09:34:24

Tests(1/10):


#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){ bool fm = true,fc = true; if(mi==n){ dm = 0;ym = -1; fm = false; } if(mi==1){ dm = 0;ym = 1; fm = false; } if(mj == 1){ ym = 0;dm = -1; fm = false; } if(mj == n){ ym = 0;dm = 1; fm = false; } if(ci==n){ dc = 0;yc = -1; fc = false; } if(ci==1){ dc = 0;yc = 1; fc = false; } if(cj == 1){ yc = 0;dc = -1; fc = false; } if(cj == n){ yc = 0;dc = 1; fc = false; } 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; } fm = false; }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; } fc = false; } if(fm){ mi+=dm; mj+=ym; } if(fc){ ci+=dc; cj+=yc; } cnt++; } if(cnt == 100){ cout<<"-1\n"; } else{ cout<<cnt<<'\n'; } } return 0; }


测评信息: