#include <stdio.h>
#include <stdlib.h>
int count=0;
void calc(int maze[100][100],int n,int i,int j)
{
printf("calc(maze,n,%d,%d)->maze={",i
,j
); int c,c2;
for(c
=0;c
<n
;c
++){printf("{");for(c2
=0;c2
<n
;c2
++){printf("%d",maze
[c
][c2
]);if(c2
+1<n
) printf(",");}
if(i<0 || i>=n || j<0 || j>=n)
return;
if(maze[i][j]==1)
return;
if(i==n-1 && j==n-1)
{
count++;
return;
}
maze[i][j]=1;
calc(maze,n,i+1,j);
calc(maze,n,i-1,j);
calc(maze,n,i,j+1);
calc(maze,n,i,j-1);
return;
}
int main()
{
int n;
int c,c2;
int maze[100][100];
for(c=0;c<n;c++)
{
for(c2=0;c2<n;c2++)
{
scanf("%d",&maze
[c
][c2
]); }
}
calc(maze,n,0,0);
return 0;
}
CgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgoKaW50IGNvdW50PTA7Cgp2b2lkIGNhbGMoaW50IG1hemVbMTAwXVsxMDBdLGludCBuLGludCBpLGludCBqKSAgCnsKICAgICBwcmludGYoImNhbGMobWF6ZSxuLCVkLCVkKS0+bWF6ZT17IixpLGopOwogICAgIGludCBjLGMyOwogICAgZm9yKGM9MDtjPG47YysrKXtwcmludGYoInsiKTtmb3IoYzI9MDtjMjxuO2MyKyspe3ByaW50ZigiJWQiLG1hemVbY11bYzJdKTtpZihjMisxPG4pIHByaW50ZigiLCIpO30KICAgIHByaW50ZigifSIpO2lmKGMrMTxuKXByaW50ZigiLCIpO30KICAgIHByaW50ZigifVxuIik7CgkKICAgICBpZihpPDAgfHwgaT49biB8fCBqPDAgfHwgaj49bikKICAgICByZXR1cm47CiAgICAgaWYobWF6ZVtpXVtqXT09MSkKICAgICByZXR1cm47CiAgICAgaWYoaT09bi0xICYmIGo9PW4tMSkKICAgICB7CiAgICAgICAgICAgICAgIGNvdW50Kys7CiAgICAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgbWF6ZVtpXVtqXT0xOwoKICAgICBjYWxjKG1hemUsbixpKzEsaik7CiAgICAgY2FsYyhtYXplLG4saS0xLGopOwogICAgIGNhbGMobWF6ZSxuLGksaisxKTsKICAgICBjYWxjKG1hemUsbixpLGotMSk7CgogICAgIHJldHVybjsKfQoKaW50IG1haW4oKQp7CiAgICBpbnQgbjsKICAgIHNjYW5mKCIgJWQiLCZuKTsKICAgIGludCBjLGMyOwogICAgaW50IG1hemVbMTAwXVsxMDBdOwogICAgZm9yKGM9MDtjPG47YysrKQogICAgewogICAgICAgIGZvcihjMj0wO2MyPG47YzIrKykKICAgICAgICB7CiAgICAgICAgICAgIHNjYW5mKCIlZCIsJm1hemVbY11bYzJdKTsKICAgICAgICB9CiAgICB9CgljYWxjKG1hemUsbiwwLDApOwogICAgcmV0dXJuIDA7Cn0=