Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
124375 | 秦炜杰 | 猫和老鼠 | C++ | 通过 | 100 | 0 MS | 252 KB | 1768 | 2024-01-23 13:53:32 |
#include<bits/stdc++.h> using namespace std; int main(){ int t; char c[20][20]={}; cin>>t; while(t--){ bool b=1; int cat_x,cat_y,mouse_x,mouse_y,cat_move=1,mouse_move=1; for(int i=1;i<=10;i++){ for(int j=1;j<=10;j++){ cin>>c[i][j]; if(c[i][j]=='M'){ mouse_x=i; mouse_y=j; } else if(c[i][j]=='C'){ cat_x=i; cat_y=j; } } } for(int i=1;i<=100;i++){ if(cat_move==1){ if(cat_x-1<1) cat_move=2; else if(c[cat_x-1][cat_y]=='*') cat_move=2; else cat_x--; } else if(cat_move==2){ if(cat_y+1>=11) cat_move=3; else if(c[cat_x][cat_y+1]=='*') cat_move=3; else cat_y++; } else if(cat_move==3){ if(cat_x+1>=11) cat_move=4; else if(c[cat_x+1][cat_y]=='*') cat_move=4; else cat_x++; } else{ if(cat_y-1<1) cat_move=1; else if(c[cat_x][cat_y-1]=='*') cat_move=1; else cat_y--; } if(mouse_move==1){ if(mouse_x-1<1) mouse_move=2; else if(c[mouse_x-1][mouse_y]=='*') mouse_move=2; else mouse_x--; } else if(mouse_move==2){ if(mouse_y+1>=11) mouse_move=3; else if(c[mouse_x][mouse_y+1]=='*') mouse_move=3; else mouse_y++; } else if(mouse_move==3){ if(mouse_x+1>=11) mouse_move=4; else if(c[mouse_x+1][mouse_y]=='*') mouse_move=4; else mouse_x++; } else{ if(mouse_y-1<1) mouse_move=1; else if(c[mouse_x][mouse_y-1]=='*') mouse_move=1; else mouse_y--; } if(cat_x==mouse_x&&cat_y==mouse_y){ cout<<i<<endl; b=0; break; } } if(b) cout<<"-1"<<endl; } return 0; } /* 1 *...*..... ......*... ...*...*.. .......... ...*.C.... *.....*... ...*...... ..M......* ...*.*.... .*.*...... */