下面是样例示意图:
输入数据包括五个参数:m,n,x,y,K
其中m和n的范围均为是[1,10],K的范围是[0,10]。
0<=x<m,0<=y<n。
输出成功逃跑的路径数量。
2 3 0 1 2
6
#include <stdio.h>
#include <stdlib.h>
int depth_first_search_algorithm(const int m, const int n, int x, int y, int k) {
if (x < 0 || y < 0 || x == n || y == m)
return 1;
if (k == 0) return 0;
int paths = 0;
paths += depth_first_search_algorithm(m, n, x - 1, y, k - 1);
paths += depth_first_search_algorithm(m, n, x + 1, y, k - 1);
paths += depth_first_search_algorithm(m, n, x, y - 1, k - 1);
paths += depth_first_search_algorithm(m, n, x, y + 1, k - 1);
return paths;
}
int main(const int argc, const char* argv[]) {
int m, n, y, x, k;
fscanf(stdin, "%d %d %d %d %d", &m, &n, &y, &x, &k);
fprintf(stdout, "%d\n", depth_first_search_algorithm(m, n, x, y, k));
return 0;
}