题目
Vadim is really keen on travelling. Recently he heard about kayaking activity near his town and became very excited about it, so he joined a party of kayakers.

Now the party is ready to start its journey, but firstly they have to choose kayaks. There are 2·n people in the group (including Vadim), and they have exactly n - 1 tandem kayaks (each of which, obviously, can carry two people) and 2 single kayaks. i-th person’s weight is w i, and weight is an important matter in kayaking — if the difference between the weights of two people that sit in the same tandem kayak is too large, then it can crash. And, of course, people want to distribute their seats in kayaks in order to minimize the chances that kayaks will crash.

Formally, the instability of a single kayak is always 0, and the instability of a tandem kayak is the absolute difference between weights of the people that are in this kayak. Instability of the whole journey is the total instability of all kayaks.

Help the party to determine minimum possible total instability!

Input
The first line contains one number n (2 ≤ n ≤ 50).

The second line contains 2·n integer numbers w 1, w 2, …, w 2n, where w i is weight of person i (1 ≤ w i ≤ 1000).

Output
Print minimum possible total instability.

Examples
Input
2
1 2 3 4
Output
1
Input
4
1 3 4 6 3 4 100 200
Output
5

#include<stdio.h>
#include<algorithm>
#include<iostream>
#include<string.h>
using namespace std;
long long a[1000];
long long b[1000];
int main()
{int n;scanf("%d", &n);{memset(a, 0, sizeof(a));memset(b, 0, sizeof(b));for (int i = 1; i <= 2 * n; i++){scanf("%lld", &a[i]);}int N = 2 * n;long long max = 1000000;sort(a + 1, a + N + 1);for (int i = 1; i < 2 * n; i++){for (int j = i + 1; j <= 2 * n; j++){long long ans = 0;int x = 0;for (int k = 1; k <= 2 * n; k++){if (k != i && k != j){b[x++] = a[k];if (x % 2 == 0)ans += (abs(b[x - 1] - b[x - 2]));}}max = min(max, ans);}}printf("%lld\n", max);}
}

贪心 C - Kayaking相关推荐

  1. 算法设计与分析第3章 贪心算法

    第4章 贪心算法 贪心算法总是作出在当前看来最好的选择.也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择. 贪心算法的基本要素 1.贪心选择性质 所谓贪心选择性质是指所 ...

  2. 贪心算法单源点最短路径例题c语言源代码,Dijkstra算法是解单源最短路径问题的一个贪心算法...

    问题描述 给定一个带权有向图 G=(V,E) ,其中每条边的权是一个非负实数. 另外,还给定 V 中的一个项点,称为源. 现在我们要计算从源到所有其他各项点的最短路径长度. 这里的长度是指路上各边权之 ...

  3. Too Many Segments CF595D 贪心乱搞

    传送门! 比赛的时候没有时间写了,看看了看大佬的代码,学习学习. 一开始实验室大佬说是用差分写的,但是看了代码发现打cf的人大家都是stl狂魔! 贪心思路:区间按照左端点排序,从1~2e5遍历每一个点 ...

  4. Roundgod and Milk Tea 贪心

    这个题好像可以用一种类似与置换的贪心方法来做~ sum记为剩余奶茶,一开始sum等于奶茶和 ans记录已经喝的奶茶数 不用排序,我们就从前往后直接处理,考虑的是每一个班最多可以喝多少杯奶茶 就是从剩余 ...

  5. 贪心算法简单实践 -- 分糖果、钱币找零、最多区间覆盖、哈夫曼编解码

    1. 贪心算法概览 贪心算法是一种算法思想.希望能够满足限制的情况下将期望值最大化.比如:Huffman编码,Dijkstra单源最短路径问题,Kruskal最小生成树 等问题都希望满足限制的情况下用 ...

  6. 贪心:expedition 最优加油方法

    已知一条公路上,有一个起点与一个终点,这之间有n个加油站;已知从这n个加 油站到终点的距离d与各个加油站可以加油的量l,起点位置至终点的距离L与起 始时刻油箱中汽油量P;假设使用1个单位的汽油即走1个 ...

  7. 贪心:Burst Balloons 最少次数完成射击气球

    已知在一个平面上有一定数量的气球,平面可以看作一个坐标系,在平面的x轴的不同位 置安排弓箭手向y轴方向射箭,弓箭可以向y轴走无穷远;给定气球的宽度 xstart ≤ x ≤ xend,问至少需要多少弓 ...

  8. 贪心:jump 游戏(获取最少跳跃的次数以及跳跃路径)

    一个数组存储了非负整型数据,数组中的第i个元素a[i],代表了可以从数组第i个 位置最多向前跳跃a[i]步;已知数组各元素的情况下,求是否可以从数组的第0个位置跳跃到数组的最后一个元素的位置,返回最少 ...

  9. 贪心:Jump Game 跳跃游戏

    一个数组存储了非负整型数据,数组中的第i个元素a[i],代表了可以从数组第i个 位置最多向前跳跃a[i]步;已知数组各元素的情况下,求是否可以从数组的第0个位置跳跃到数组的最后一个元素的位置,返回是t ...

  10. 贪心:remove K digits移除K个数字

    问题描述: 已知一个使用字符串表示的非负整数num,将num中的k个数字移 除,求移除k个数字后,可以获得的最小的可能的新数字. 例如:num = "1432219" , k = ...

最新文章

  1. java 数字三角形_数字三角形 Number Triangles(java的MLE解决办法)
  2. SQL取出每个产品的Top n 条记录
  3. Quagga:开源的基于Zebra实现了RIP, OSPF, BGP的动态路由软件
  4. php oracle 8.1.7,Oracle 8.1.7在redhat 7.3的安装方法
  5. Python算法教程第一章知识点:利用插入元素的例子详解list之本质
  6. java interruptedexception_如何正确的处理InterruptedException
  7. MySQL数据库如何建立视图
  8. matlab uicontrol 居中,uicontrol 用法【matlab】
  9. 计算机采取二进制的原因,计算机为什么采用二进制
  10. 占内存最小的浏览器:360安全浏览器超速版推荐
  11. Android 解决GreenDao:Failed to notify project evaluation listener
  12. testlink批量执行用例
  13. 编程创建一个Cale计算类,在其中定义2个变量(属性)表示两个操作数,定义四个方法实现求和、差、乘、商(要求除数为0的话,要提示)``并创建两个对象,分别测试 。
  14. 电脑出现白屏怎么办(软件有的能打开,就是一开机就出现白屏)(亲测有效)
  15. [自习任我行]第二阶段任务跟踪1
  16. 用pygame做一个简单的python小游戏---生命游戏
  17. 使用线程实现电子时钟
  18. 微信开挂怎么防止封号_越狱过的手机怎样避免外挂微信被封
  19. C++编程基础入门知识(最详细建议收藏)
  20. Android 中高级面试题:Activity是如何实现LifecycleOwner的?

热门文章

  1. 小程序向webview传参_h5与小程序互相跳转,传参和获取参数
  2. 什么是HDMI网线延长器?浅析HDMI1.3网线延长器原理和应用
  3. 2021-05-04 16:37:16.550 ERROR 3268 --- [nio-8080-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet] :
  4. ArcGIS Runtime for Android天地图底图及TPK数据包放大后数据不显示问题
  5. ipv4和ipv6地址长度
  6. 联想t450进入bios设置按哪个键_联想台式机怎么进入bios|联想台式电脑按什么键进bios设置...
  7. Java证书keystore生成过程
  8. 2022年山东大学游戏策划考试回忆版
  9. Paper再现:MD+AI自动编码机探测蛋白变构(四):DIO的生成和聚类
  10. 定义一个方法用于判断一个字符串是否是对称的字符串(StringBuilder),例如:abcba、上海自来水来自海上均为对称字符串。