51nod 2486 小b和矩陣
阿新 • • 發佈:2019-05-03
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和矩陣