Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
121001 | 凌艺樽 | 猫和老鼠 | C++ | 解答错误 | 70 | 0 MS | 248 KB | 1591 | 2024-01-21 14:42:04 |
#include <bits/stdc++.h> using namespace std; const int N=30; const int INF=0x3f3f3f3f; char s[N][N]; int mf,cf; int a[N][N]; int t,mi,mj,ci,cj; void Cat_pos() { if(cf==0) { ci--; if(a[ci][cj]==1 || ci<1){ ci++; cf++; } } else if(cf==1) { cj++; if(a[ci][cj]==1 || cj>10){ cj--; cf++; } } else if(cf==2) { ci++; if(a[ci][cj]==1 || ci>10){ ci--; cf++; } } else if(cf==3) { cj--; if(a[ci][cj]==1 || cj<1){ cj++; cf=0; } } } void Mouse_pos() { if(mf==0) { mi--; if(a[mi][mj]==1 || mi<1){ mi++; mf++; } } else if(mf==1) { mj++; if(a[mi][mj]==1 || mj>10){ mj--; mf++; } } else if(mf==2) { mi++; if(a[mi][mj]==1 || mi>10){ mi--; mf++; } } else if(mf==3) { mj--; if(a[mi][mj]==1 || mj<1){ mj++; mf=0; } } } int main() { cin>>t; while(t--) { for(int i=1;i<=10;i++) { for(int j=1;j<=10;j++) { a[i][j]=0; s[i][j]='.'; } } for(int i=1;i<=10;++i) { for(int j=1;j<=10;++j) { cin>>s[i][j]; if(s[i][j]=='C') { ci=i+1; cj=j; } if(s[i][j]=='M') { mi=i+1; mj=j; } if(s[i][j]=='*') { a[i][j]=1; } } } int ans=0; while(++ans<=100) { Cat_pos(); Mouse_pos(); // cout<<ans<<":"<<ci<<" "<<cj<<" "<<mi<<" "<<mj<<endl; if(ci==mi && cj==mj) { cout<<ans-1<<endl; break; } } if(ans>=100) { cout<<"-1\n"; } } return 0; }