AcWing 756. 蛇形矩阵
原题链接
简单
作者:
GamorH
,
2024-03-14 23:31:26
,
所有人可见
,
阅读 8
暴力出奇迹,原始的美
#include <iostream>
using namespace std;
const int N = 101;
bool flag[N][N];
int count = 0;
int main()
{
int a[N][N];
int n, m;
cin >> n >> m;
int up = 1;
int right = m;
int down = n;
int left = 1;
while (count != n * m)
{
for (int i = 1; i <= m; i++)
if (!flag[up][i])
{
a[up][i] = ++count;
flag[up][i] = true;
}
up++;
for (int i = 1; i <= n; i++)
{
if (!flag[i][right])
{
a[i][right] = ++count;
flag[i][right] = true;
}
}
right--;
for (int i = m; i >= 1; i--)
if (!flag[down][i])
{
a[down][i] = ++count;
flag[down][i] = true;
}
down--;
for (int i = n; i >= 1; i--)
{
if (!flag[i][left])
{
a[i][left] = ++count;
flag[i][left] = true;
}
}
left++;
}
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
cout << a[i][j] << ' ';
cout << "\n";
}
return 0;
}