AcWing 756. 蛇形矩阵
原题链接
简单
作者:
术
,
2021-01-11 21:29:34
,
所有人可见
,
阅读 434
#include <iostream>
using namespace std;
const int N=105;
const int M=105;
int a[N][M];
int main()
{
int n,m;
int x[4][2]= {{0,1},{1,0},{0,-1},{-1,0}};
cin>>n>>m;
int res=1;
int x1=0,y1=0;
int k=0;
while(res<=n*m)//放进一个循环里
{
//cout<<x1<<" "<<y1<<" "<<res<<endl;
a[x1][y1]=res++;
int s=x1+x[k][0];
int t=y1+x[k][1];
if(s<0||t<0||s>=n||t>=m||a[s][t]){
k=(k+1)%4;
s=x1+x[k][0];
t=y1+x[k][1];
}
x1=s,y1=t;
}
for(int i=0; i<n; i++)
{
for(int j=0; j<m; j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
//cout << "Hello world!" << endl;
return 0;
}