AcWing 756. 蛇形矩阵
原题链接
简单
作者:
Ssenyw
,
2024-05-14 10:22:02
,
所有人可见
,
阅读 3
#include <iostream>
#include <cstring>
using namespace std;
const int N = 110;
int n, m;
int a[N][N];
int main()
{
cin >> n >> m;
int dx[] = {-1, 0, 1, 0}, dy[] = {0, 1, 0, -1};
int x = 0, y = 0;
int k = 1;
for(int i = 1; i <= n * m; i ++)
{
a[x][y] = i;
int x1 = x + dx[k], y1 = y + dy[k];
if(x1 < 0 || x1 > n - 1 || y1 < 0 || y1 > m - 1 || a[x1][y1])
{
k = (k + 1) % 4;
x1 = x + dx[k], y1 = y + dy[k];
}
x = x1, y = y1;
}
for(int i = 0; i < n; i ++)
{
for(int j = 0; j < m; j ++)
{
cout << a[i][j] << ' ';
}
cout << endl;
}
return 0;
}