1 solutions
-
1
#include <stdio.h> #include <math.h> #include <algorithm> #include <iostream> #include <string.h> #include <queue> #include <stack> #include <map> #include <set> #include <vector> using namespace std; int n,m,ans=0,vis[25][25],k; int dx[4]= {0,-1,0,1},dy[4]= {-1,0,1,0}; char a[25][25]; struct ti { int start; int en; }; ti b[100]; void dfs(int x,int y,int step) { step++; b[step].start=x+1; b[step].en=y+1; if(x==n-1&&y==n-1) { if(!k) { cout<<"("<<1<<","<<1<<")"; for(int i=2; i<=step; i++) cout<<"->"<<"("<<b[i].start<<","<<b[i].en<<")"; k=1; } } vis[x][y]=1; for(int i=0; i<4; i++) { int tx=x+dx[i],ty=y+dy[i]; if(tx>=0&&ty>=0&&tx<n&&ty<n&&vis[tx][ty]==0&&a[tx][ty]=='0') { dfs(tx,ty,step); } } } int main() { scanf("%d",&n); for(int i=0; i<n; i++) { cin>>a[i]; } dfs(0,0,0); return 0; }
Information
- ID
- 768
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- 7
- Tags
- # Submissions
- 246
- Accepted
- 48
- Uploaded By