AcWing 756. 蛇形矩阵
原题链接
简单
作者:
米多奇香米饼
,
2023-02-07 16:32:23
,
所有人可见
,
阅读 155
# include<iostream>
# include<cstdio>
using namespace std;
int main(){
int n,m;//n代表行,m代表列
cin>>n>>m;
int mutex[n][m];
int flag = 1;
int ax=0,ay=0,bx=n,by=m;
while(true){
for(int i = ay;i<by;i++) {mutex[ax][i] = flag++;}
for(int i = ax+1;i<bx;i++) mutex[i][by-1] = flag++;
for(int i = by-2;i>=ay&&bx-1>ax;i--) mutex[bx-1][i] = flag++;
for(int i = bx-2;i>ax&&by-1>ay;i--) mutex[i][ay] = flag++;
//进入下一圈
ax++;ay++;bx--;by--;
if(ax>=bx||ay>=by) break;
}
for(int i = 0;i<n;i++){
for(int j = 0;j<m;j++) cout<<mutex[i][j]<<" ";
cout<<endl;
}
return 0;
}