疯狂队列
来源:互联网 发布:yy网络直播间 编辑:程序博客网 时间:2024/05/20 07:17
牛客网链接
小易老师是非常严厉的,它会要求所有学生在进入教室前都排成一列,并且他要求学生按照身高不递减的顺序排列。有一次,n个学生在列队的时候,小易老师正好去卫生间了。学生们终于有机会反击了,于是学生们决定来一次疯狂的队列,他们定义一个队列的疯狂值为每对相邻排列学生身高差的绝对值总和。由于按照身高顺序排列的队列的疯狂值是最小的,他们当然决定按照疯狂值最大的顺序来进行列队。现在给出n个学生的身高,请计算出这些学生列队的最大可能的疯狂值。小易老师回来一定会气得半死。
输入描述:
输入包括两行,第一行一个整数n(1 ≤ n ≤ 50),表示学生的人数
第二行为n个整数h[i](1 ≤ h[i] ≤ 1000),表示每个学生的身高
输出描述:
输出一个整数,表示n个学生列队可以获得的最大的疯狂值。
如样例所示:
当队列排列顺序是: 25-10-40-5-25, 身高差绝对值的总和为15+30+35+20=100。
这是最大的疯狂值了。
输入例子1:
5
5 10 25 40 25
输出例子1:
100
- 首先先排序,每次提出首尾数字,然后根据奇偶性,注意最后一个数字的放置地方。
#include<iostream>#include<algorithm>using namespace std;int main(){ int n; cin>>n; int list[n]; for(int i=0 ; i<n ; i++){ cin>>list[i]; } sort(list,list+n); int total=0; int j=1; int z = 0,t=0; if(n%2) t=1; else t =2; for(int i=0;i < n-t ; i++){ z = i/2; if(j==1){ total += abs(list[n-1-z]-list[z]); }else{ total += abs(list[n-1-z]-list[z+1]); } cout<<total<<endl; j *= -1; } total +=list[n/2]-list[0]; cout<<total; return 0;}
阅读全文
0 0
- 疯狂队列
- 疯狂队列
- 疯狂队列
- 疯狂队列(交错队列)
- [编程题] 疯狂队列
- 网易疯狂队列
- [编程题] 疯狂队列
- 疯狂队列问题
- 网易疯狂队列
- [编程题] 疯狂队列
- 【算法题】疯狂的队列
- 《网易编程题》疯狂队列
- 疯狂数队列 编程 python
- 疯狂队列-网易2018校招内推
- 网易编程题 疯狂队列
- 2018网易校招内推-疯狂队列
- 最大疯狂队列的和
- 疯狂java笔记之栈和队列
- 【Hibernate】的cascade属性
- java 搭建spring核心框架
- python 二叉树的相关实现
- 逆序对的求法(树状数组)
- pip、virturalenv、supervisor学习使用
- 疯狂队列
- 一次关于mongodb性能踩坑的总结
- 大型网站技术架构(六)--网站的伸缩性架构
- SecureCRT & SecureFX
- Cinder-Volume如何实现AA高可用——分布式锁及其在OpenStack上的应用
- macvlan 网络隔离和连通
- 数组
- Oracle1
- noip2015 普及组:金币 水