pat advanced 1105
来源:互联网 发布:欢乐牛牛源码 编辑:程序博客网 时间:2024/06/10 07:02
/************* *Author:chanjun *email:15755396353@163.com *************/#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <cctype>#include <cmath>#include <vector>#include <stack>#include <queue>#include <string>#include <list>#include <deque>#include <map>#include <set>#include <algorithm>using namespace std;#define INF 0x3f3f3f3f#define EXP 1e-8#define LL long longint n,m;int l;int g[3500][3500];int dir[][2] = {0,1,1,0,0,-1,-1,0};int main(){//freopen("a.in","r",stdin);//freopen("a.out","w",stdout);scanf("%d",&l);vector<int> a(l);for (int i = 0; i < l; ++i){scanf("%d",&a[i]);}int n = sqrt(l);while (l % n){--n;}m = l / n;sort(a.begin(),a.end(),greater<int>());int i = 0, j = 0;int cnt = 0;g[i][j] = a[cnt];int flag = 0;while (cnt+1 < l){int ti = i + dir[flag][0];int tj = j + dir[flag][1];if (ti >= m || ti < 0 || tj >= n || tj < 0 || g[ti][tj]){flag = (flag+1)%4;}i += dir[flag][0];j += dir[flag][1];g[i][j] = a[++cnt];}for (int i = 0; i < m; ++i){for (int j = 0; j < n-1; ++j){printf("%d ", g[i][j]);}printf("%d\n",g[i][n-1]);}system("pause");return 0;}
0 0
- pat advanced 1105
- PAT Advanced 1065
- PAT Advanced 1001
- PAT Advanced 1043
- PAT Advanced 1042
- PAT Advanced 1067
- PAT Advanced 1066
- PAT Advanced 1005
- pat advanced 1044
- pat advanced 1042
- pat advanced 1043
- pat advanced 1032
- pat:1002(Advanced)
- pat advanced 1050
- pat advanced 1051
- pat advanced 1046
- pat advanced 1054
- pat advanced 1003
- mysql_jdbc连接说明
- Pascal教程
- java 回调函数(callback)详解
- Eclipse快捷键
- 《SDN: Software Defined Networks》读书笔记1--控制层与数据层分离
- pat advanced 1105
- 通排序与基数排序
- 删除ubuntu卸载后的bootloader
- Java调试那点事
- 【杭电oj】1999-不可摸数(打表)
- 走出阴影,走向新生活
- iOS Core Animation 简明系列教程
- postgres不错的命令
- Android入门心得(一)