一道水题。但我不知道自己的代码错在哪里~~大牛帮忙看下,谢谢

来源:百度知道 编辑:UC知道 时间:2024/06/07 06:38:58
Description

回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。

Input

输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。

Output

输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。

Sample Input

Sample 1
3 3
1 2 3
4 5 6
7 8 9

Sample 2
3 2
1 2
3 4
5 6

Sample Output

Sample 1
1 4 7 8 9 6 3 2 5

Sample 2
1 3 5 6 4 2

#include <cstdio>

const int MAXM = 200 + 10;
int m, n;
int num[MAXM][MAXM] = {0};
int ans[MAXM];
int tempo = 0;

void init()
{
scanf("%d %d",&m,&n);
int i, j;
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
scanf("%d",&num[i][j]);
}
}
}

void solve(int beginrow, int beginline, int row, int line)
{

1.ans空间不够大,至少要MAXM * MAXM
2.要求是不能有空格在最后,回车不知道行不行
3.100次递归很耗空间哦,小心(可以考虑用自动机之类的)

...我在VC6.0运行没有错啊 就是j定义了没用到而已
这是ACM的题吧 提交可能会运行超时 假如N为100那么100次递归消耗的空间和时间可不短

cstdio?什么文件?