背景

"梦中伊人,断我男儿几寸柔肠,于断桥,不知西风自憔悴那姑娘。"小v的梦中伊人要带领一大帮姐妹MM们来小v家举办舞会,然而怎么安排跳舞的顺序成了大问题,你能帮他么?

描述

有n个MM要站成若干个圈来跳华尔兹,而每个MM都有一个漂亮值Si,跳舞时第i个MM所表现出来的漂亮值为:该MM的漂亮值与其后面MM的漂亮值之差的绝对值(规定顺时针方向为向后),如果某个MM单独站成一个圈(假设能站成),则其漂亮值为0,你的任务是找出这个最大能表现出的漂亮值。

输入格式

第一行一个整数n,表示n个MM
第二行n个整数,第i个整数表示第i个MM的漂亮值

输出格式

一行一个整数,表示能表现出的最大漂亮值

测试样例1

输入


12 11 24 17 12 24

输出

60

备注

数据范围:
对于10%的数据,0<n<=10,0<Si<=100
对于40%的数据,0<n<=50,0< Si <=1000
对于100%的数据,0<n<=300,0<Si<=1000000
结果保证不大于2^31.
//贪心,取两头,怎么证明我不懂
#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
ll n,a[],b[],sum;
int main(){
cin>>n;
for(int i = ;i <= n;i++) scanf("%lld",&a[i]);
sort(a+,a++n);
int l = ,r = n,opt = ;
for(int i = ;i <= n;i++){
if(!opt) b[i] = a[l++];
else b[i] = a[r--];
opt ^= ;
}
b[] = b[n];
for(int i = ;i <= n;i++){
if(b[i] > b[i-]) sum += b[i] - b[i-];
else sum += b[i-] - b[i];
}
cout<<sum;
return ;
}

最新文章

  1. 图表控件== 百度 echarts的入门学习
  2. JavaScript学习汇总
  3. HtmlparseUtil.java
  4. 帝国CMS附件大小限制
  5. 再造轮子之网易彩票-第二季(IOS 篇 by sixleaves)
  6. Linux学习之sed命令详解
  7. DCGAN 代码简单解读
  8. Oracle可视化工具PL/SQL Developer的安装与配置
  9. 文字在线转图片二维码的公用API接口
  10. Qt监控Arduino开关状态(读取串口数据)
  11. python数据类型详解(全面)
  12. 【JavaScript】table显示问题
  13. 816E. Karen and Supermarket 树形DP
  14. 2017haoi总结
  15. OpenERP|odoo Web开发
  16. drawer navigation, tabhostFragment 默认导向
  17. 大数据框架:Spark vs Hadoop vs Storm
  18. 通用Json的处理办法
  19. 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-如何在同一台PC上运行多个TwinCAT程序
  20. gridControl使用集锦

热门文章

  1. 【java开发】封装与继承
  2. Linux Core Dump
  3. 理解浮动和position定位
  4. 高阶Laplace曲面形变算法(Polyharmonic Deformation)
  5. NYOJ 734
  6. Mongodb的安装
  7. C语言:socket简单模拟http请求
  8. CWMP开源代码研究1——开篇之作
  9. jquery.lazyload 实现图片延迟加载jquery插件
  10. ajax返回值中有回车换行、空格的解决方法分享