Run ID 作者 问题 语言 测评结果 时间 内存 代码长度 提交时间
1103 yy034 鸣人与佐助 C++ 解答错误 0 MS 292 KB 953 2022-05-28 11:28:05

Tests(0/20):


#include <bits/stdc++.h> using namespace std; int a[205][205]; int x,y,minn=2e5; int k[5]={-1,1,0,0},l[5]={0,0,-1,1}; int dfs(int s,int t){ for(int i=0;i<4;i++){ if(a[x+k[i]][y+l[i]]==3){ minn=min(minn,s+1); } else if(a[x+k[i]][y+l[i]]==1){ x+=k[i]; y+=l[i]; a[x][y]=0; dfs(s+1,t); x-=k[i]; y-=l[i]; a[x][y]=1; } else if(a[x+k[i]][y+l[i]]==2){ if(t>0){ x+=k[i]; y+=l[i]; a[x][y]=0; dfs(s+1,t-1); x-=k[i]; y-=l[i]; a[x][y]=1; } } } } int main(){ int n,m,t; char e; cin>>n>>m>>t; for(int i=1;i<=m;i++){ for(int j=1;j<=n;j++){ cin>>e; switch(e){ case '#': a[i][j]=2; break; case '@': x=i; y=j; break; case '+': a[i][j]=3; break; case '*': a[i][j]=1; break; } } } dfs(0,t); if(minn==2e5){ cout<<-1; } else{ cout<<minn; } return 0; }


测评信息: