PAT乙级 1050. 螺旋矩阵(25)
来源:互联网 发布:淘宝实名账号购买 编辑:程序博客网 时间:2024/05/20 18:15
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<cmath>#include<algorithm>#include<cstdio>using namespace std;int hang,lie;int b[10001][10001]={0};bool cmp(int x,int y){ return x>y;}int calLieShu(int k){ int Max; for(int i=1;i<=sqrt(k);i++) { if(k%i==0) Max=i; } return Max;}bool leagl(int x,int y){ if(x<1||x>hang||y>lie||y<1) return false; return true;}struct node{ int x,y;};int a[100001];int main(){ node cur,next; int n; scanf("%d",&n); int j=1; for(int i=0;i<n;i++) scanf("%d",&a[i]); sort(a,a+n,cmp); lie=calLieShu(n); hang=n/lie; int dir[4][2]={{0,1},{1,0},{0,-1},{-1,0}}; cur.x=1; cur.y=1; b[cur.x][cur.y]=a[0]; while(j<n) { for(int i=0;i<4;i++) { next.x=cur.x+dir[i][0]; next.y=cur.y+dir[i][1]; while(leagl(next.x,next.y)&&b[next.x][next.y]==0) { cur=next; b[cur.x][cur.y]=a[j++]; next.x=cur.x+dir[i][0]; next.y=cur.y+dir[i][1]; } } } for(int i=1;i<=hang;i++) { for(int j=1;j<=lie;j++) { if(j!=lie) printf("%d ",b[i][j]); else printf("%d",b[i][j]); } putchar(10); } return 0;}
阅读全文
0 0
- 1050. 螺旋矩阵(25)-PAT乙级
- PAT乙级 1050. 螺旋矩阵(25)
- PAT乙级 1050. 螺旋矩阵(25)
- [PAT乙级]1050. 螺旋矩阵(25)
- PAT乙级 1050. 螺旋矩阵(25)
- PAT乙级1050. 螺旋矩阵(25)
- pat 乙级 1050. 螺旋矩阵(25)
- [PAT-乙级]1050.螺旋矩阵
- PAT乙级—1050. 螺旋矩阵(25)-native
- 1050. 螺旋矩阵(25)-PAT乙级真题
- pat乙级真题 1050. 螺旋矩阵(25)
- 1050. 螺旋矩阵(25) PAT乙级真题
- PAT乙级 1050 螺旋矩阵(25)
- PAT乙级1050 螺旋矩阵
- 1050. 螺旋矩阵(25) PAT乙级&&1105. Spiral Matrix (25)PAT甲级
- PAT 1050. 螺旋矩阵(25)
- PAT 1050. 螺旋矩阵(25)
- PAT 1050.螺旋矩阵(25)
- 一致性hash
- navicat连接虚拟机中的数据库
- 【Kotlin】Kotlin与Java反射实践
- Ryu控制器部署及其与Rest API接口调用问题解决
- 量化投资
- PAT乙级 1050. 螺旋矩阵(25)
- matlab初级
- [leetcode]627. Swap Salary
- shell中的eval以及与 反引号``、$()的区别
- 支持向量机(SVM)
- Android Webview 软键盘遮挡输入框
- sacla(1)----- 简介及安装
- CentOS下安装mysql5.7.18的正确姿势
- getDrawable过时的替代方法