sum
来源:互联网 发布:回也闻一以知十 编辑:程序博客网 时间:2024/05/16 18:38
题目描述
给出n 个数a1..an,求两个数相加的绝对值的最小值
即求| ai + aj | (i 不等于j) 的最小值
输入
第一行一个数n
接下一行n 个数a1..an
输出
一行一个数ans, 两个数相加的绝对值的最小值
样例输入
5
-2 6 7 7 -8
样例输出
1
数据范围限制
• 对于40% 的数据,n <= 10^3,-10^6 <= ai <= 10^6。
• 对于80% 的数据,n <= 10^5,-10^6 <= ai <= 10^6。
• 对于100% 的数据,n <= 10^6,-10^6 <= ai <= 10^6。
TJ
先用每个数的绝对值作关键字排个序,再每两个相邻的数相加求最小和。
BC
var n,i,ans:longint; a:array[1..1000000]of longint;procedure kp(l,r:longint);var i,j,mid,t:longint;begin i:=l; j:=r; mid:=abs(a[(l+r)div 2]); repeat while abs(a[i])<mid do inc(i); while abs(a[j])>mid do dec(j); if i<=j then begin t:=a[i]; a[i]:=a[j]; a[j]:=t; inc(i); dec(j); end; until i>j; if l<j then kp(l,j); if i<r then kp(i,r);end;begin assign(input,'sum.in');reset(input); assign(output,'sum.out');rewrite(output); readln(n); for i:=1 to n do read(a[i]); kp(1,n); ans:=maxlongint; for i:=2 to n do if abs(a[i]+a[i-1])<ans then ans:=abs(a[i]+a[i-1]); writeln(ans); close(input);close(output);end.
阅读全文
1 0
- Sum
- sum
- sum
- Sum
- Sum
- Sum
- sum
- Sum
- sum
- Sum
- sum
- Sum
- sum
- Sum Sum Sum
- HDU5150 Sum Sum Sum
- HDU - 5150 Sum Sum Sum
- hdu 5150 sum sum sum
- hdu 5150 Sum Sum Sum
- mysql FAQ
- 【拜小白opencv】12-Mat类常用的几种创建方法及clone(),copyTo()的使用
- Java抽象类不可创建对象,但可以调用静态方法将建一个对象
- spring 4 restful 服务添加http-basic 验证。
- 第四章 XadminSite
- sum
- HDU 6129Just do it
- Element-UI的表格动态加载数据
- P1605 迷宫
- 深入理解Python中的生成器
- 在ubuntu14.04上安装ROS(robot operating system)
- qt基础1
- 关于app设计原型的工具总结
- jquery实现点击a链接,跳转之后,该a链接处显示背景色