Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- char map[256][256] = { 0 };
- int n;
- int gx, gy, lx, ly, flag = 0;
- int dirs[4][2] = { {0,1},{0,-1},{-1,0},{1,0} };
- void output(){
- int i = 0, j = 0;
- for(i = 0; i < n; i++){
- for(j = 0; j < n; j++){
- if(i == lx && j == ly){
- putchar('L');
- }
- else{
- putchar(map[i][j]);
- }
- }
- putchar('\n');
- }
- }
- void dfs(int x, int y){
- if((x == lx) && (y == ly)){
- //output
- flag = 1;
- output();
- return;
- }
- else{
- if(flag){
- return;
- }
- else{
- int i, dx, dy;
- for(i = 0; i < 4; i++){
- dx = x + dirs[i][0];
- dy = y + dirs[i][1];
- if((dx >= 0) && (dx < n) && (dy >= 0) && (dy < n)
- && (map[dx][dy] == '0' || map[dx][dy] == 'L')){
- map[dx][dy] = 'S';
- dfs(dx, dy);
- map[dx][dy] = '0';
- }
- }
- }
- }
- }
- int main(){
- int i;
- char input[256] = { 0 };
- fgets(input, 255, stdin);
- sscanf(input, "%d", &n);
- fgets(input, 255, stdin);
- sscanf(input, "%d%d%d%d", &gx, &gy, &lx, &ly);
- for(i = 0; i < n; i++){
- fgets(map[i], 255, stdin);
- }
- dfs(gx, gy);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement