PAT乙1050 螺旋矩陣 陣列範圍

2021-08-21 22:31:08 字數 1128 閱讀 1834

1050 螺旋矩陣(25)(25 分)

本題要求將給定的n個正整數按非遞增的順序,填入「螺旋矩陣」。所謂「螺旋矩陣」,是指從左上角第1個格仔開始,按順時針螺旋方向填充。要求矩陣的規模為m行n列,滿足條件:m*n等於n;m>=n;且m-n取所有可能值中的最小值。

輸入格式:

輸入在第1行中給出乙個正整數n,第2行給出n個待填充的正整數。所有數字不超過10^4^,相鄰數字以空格分隔。

輸出格式:

輸出螺旋矩陣。每行n個數字,共m行。相鄰數字以1個空格分隔,行末不得有多餘空格。

輸入樣例:

1237

7620

9876

4253

9560

8158

93輸出樣例:

9895

9342

3781

5320

7658

6076

矩陣b不止b[105][105]

但是b[10005][10005]最後乙個測試點會記憶體超限

由於m>=n,m 邊界為10000,n 邊界為100;所以取b[10005][105]

做法:將數a填入矩陣b

#include

#include

#include

#include

using

namespace

std;

int n,m,n,a[10005],b[10005][105];//注意b邊界並不是sqrt(100005);

int main()

for(int i=0;iscanf("%d",&a[i]);

}sort(a,a+n);

int x=0,y=0,dir=0,t=0;

for(int i=n-1;i>=0;i--)

}else

if(dir==1)

}else

if(dir==2)

}else

if(dir==3)}}

for(int i=0;ifor(int j=0;j1;j++)

printf("%d\n",b[i][n-1]);

}return

0;}

PAT乙 1050 螺旋矩陣 25

題目描述 本題要求將給定的n個正整數按非遞增的順序,填入 螺旋矩陣 所謂 螺旋矩陣 是指從左上角第1個格仔開始,按順時針螺旋方向填充。要求矩陣的規模為m行n列,滿足條件 m n等於n m n 且m n取所有可能值中的最小值。程式 include include include using names...

PAT乙級1050 螺旋矩陣 25分

本題要求將給定的 n 個正整數按非遞增的順序,填入 螺旋矩陣 所謂 螺旋矩陣 是指從左上角第 1 個格仔開始,按順時針螺旋方向填充。要求矩陣的規模為 m 行 n 列,滿足條件 m n 等於 n m n 且 m n 取所有可能值中的最小值。輸入格式 輸入在第 1 行中給出乙個正整數 n,第 2 行給出...

PAT乙級 1050 螺旋矩陣 25分

本題要求將給定的 n 個正整數按非遞增的順序,填入 螺旋矩陣 所謂 螺旋矩陣 是指從左上角第 1 個格仔開始,按順時針螺旋方向填充。要求矩陣的規模為 m 行 n 列,滿足條件 m n 等於 n m n 且 m n 取所有可能值中的最小值。輸入在第 1 行中給出乙個正整數 n,第 2 行給出 n 個待...