1. 程式人生 > >51nod 2486 小b和矩陣

51nod 2486 小b和矩陣

line 內容 sca div bin fas vertica %d lin

小b有一個m行n列的矩陣。

她會從(1,1)開始,順時針螺旋訪問該矩陣,每個元素恰好被訪問一次。

請你按小b的訪問順序輸出每個元素。

輸入

第一行輸入兩個數m和n,其中0<m,n≤500;
之後m行,每行n個數以空格隔開,表示這個矩陣。

輸出

輸出一行共m*n個數,表示螺旋輸出的結果

輸入樣例

3 4
1 2 3 4
5 6 7 8
9 10 11 12

輸出樣例

1 2 3 4 8 12 11 10 9 5 6 7

註意判斷即可。
代碼:
#include <iostream>
#include 
<cstdlib> #include <cstdio> using namespace std; int mp[502][502]; int main() { int n,m,flag = 0; scanf("%d%d",&n,&m); for(int i = 0;i < n;i ++) { for(int j = 0;j < m;j ++) { scanf("%d",&mp[i][j]); } } for(int i = 0
;i * 2 < n && i * 2 < m;i ++) { for(int j = i;j < m - i;j ++) { if(flag) putchar( ); else flag ++; printf("%d",mp[i][j]); } for(int j = i + 1;j < n - i;j ++) { printf(" %d",mp[j][m - i - 1]); }
if(n - i - 1 > i) for(int j = m - i - 2;j >= i;j --) { printf(" %d",mp[n - i - 1][j]); } if(i < m - i - 1) for(int j = n - i - 2;j > i;j --) { printf(" %d",mp[j][i]); } } }

51nod 2486 小b和矩陣