PAT-A-1050. 螺旋矩阵(25)
来源:互联网 发布:word画流程图软件 编辑:程序博客网 时间:2024/06/03 12:05
1050. 螺旋矩阵(25)
时间限制
150 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue
本题要求将给定的N个正整数按非递增的顺序,填入“螺旋矩阵”。所谓“螺旋矩阵”,是指从左上角第1个格子开始,按顺时针螺旋方向填充。要求矩阵的规模为m行n列,满足条件:m*n等于N;m>=n;且m-n取所有可能值中的最小值。
输入格式:
输入在第1行中给出一个正整数N,第2行给出N个待填充的正整数。所有数字不超过104,相邻数字以空格分隔。
输出格式:
输出螺旋矩阵。每行n个数字,共m行。相邻数字以1个空格分隔,行末不得有多余空格。
输入样例:1237 76 20 98 76 42 53 95 60 81 58 93输出样例:
98 95 9342 37 8153 20 7658 60 76
提交代
码
#include<iostream>#include<cstdio>#include<math.h>#include<algorithm>using namespace std;const int maxn = 10010;int a[maxn];int b[maxn][maxn];int cmp(int a, int b){ return a > b;}int main(){ int num; cin >> num; for (int i = 0; i < num; i++) cin >> a[i]; if (num == 1) { cout << a[0]; return 0; } int sqr = (int)ceil(sqrt(1.0*num)); int m = sqr; while (num % m != 0) { m++; } int n = num / m; sort(a, a + num, cmp); int now = 0; int u = 1, d = m, l = 1, r = n; int i = 1, j = 1; while (now < num) { while (j < r&&now < num) { b[i][j] = a[now]; now++; j++; } while (i < d&&now < num) { b[i][j] = a[now]; now++; i++; } while (j>l&&now < num) { b[i][j] = a[now]; now++; j--; } while (i>u&&now < num) { b[i][j] = a[now]; now++; i--; } r--; l++; u++; d--; i++; j++; if (now == num - 1) { b[i][j] = a[now]; now++; } } for (int i = 1; i <= m; i++) { for (int j = 1; j <= n; j++) { cout << b[i][j]; if (j != n) cout << " "; } cout << endl; } system("pause"); return 0;}
阅读全文
0 0
- PAT-A-1050. 螺旋矩阵(25)
- PAT 1050. 螺旋矩阵(25)
- PAT 1050. 螺旋矩阵(25)
- PAT 1050.螺旋矩阵(25)
- PAT 1050. 螺旋矩阵(25)
- 1050. 螺旋矩阵(25) PAT
- pat 1050. 螺旋矩阵
- PAT螺旋矩阵(25)
- C++ - PAT - 1050. 螺旋矩阵(25)
- PAT BASIC LEVEL 1050. 螺旋矩阵(25)
- 1050. 螺旋矩阵(25)-PAT乙级
- PAT乙级 1050. 螺旋矩阵(25)
- PAT乙级 1050. 螺旋矩阵(25)
- [PAT乙级]1050. 螺旋矩阵(25)
- PAT乙级 1050. 螺旋矩阵(25)
- PAT乙级1050. 螺旋矩阵(25)
- pat 乙级 1050. 螺旋矩阵(25)
- PAT刷题:1050. 螺旋矩阵(25)
- jsp 萌新练习
- hadoop常用web功能
- Centos7搭建wordpress
- javascript 敏感词过滤题 Cross the greatwall,We can reach every corner of the world.
- ORALCE官网下载JDK历史版本
- PAT-A-1050. 螺旋矩阵(25)
- SpringMVC工作总结001_SpringMVC拦截器(资源和权限管理)
- 火柴棒等式
- 巩固一下:SpringMVC详细示例实战教程
- 巩固一下:SpringMVC详细示例实战教程
- 数据库的基本操作
- 1001. 害死人不偿命的(3n+1)猜想
- linux基础入门之usermod命令
- ms14_064漏洞别IE打开链接执行远控木马