AcWing 756. 蛇形矩阵-语法题-C++
原题链接
简单
作者:
码
,
2021-07-17 10:27:49
,
所有人可见
,
阅读 174
#include<iostream>
using namespace std;
int direx[] = {-1,0,1,0},direy[] ={0,1,0,-1};
int rect[100][100];
bool is_walk[100][100];
int main()
{
int n,m,t=1,count=1,a=0,b=-1;
cin>>n>>m;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
a=a+direx[t],b=b+direy[t];
if(a<0 || a>=n || b<0 || b>=m || is_walk[a][b])
{
a-=direx[t],b-=direy[t];
t= (t+1)%4;
a=a+direx[t],b=b+direy[t];
}
is_walk[a][b]=true;
rect[a][b] = count++;
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cout<<rect[i][j]<<' ';
}
cout<<endl;
}
return 0;
}