绝对值最小

题目详情:

给你一个数组A[n],请你计算出ans=min(|A[i]+A[j]|)(0<=i,j<n).

例如:A={1, 4, -3},

则:

|A[0] + A[0]| = |1 + 1| = 2.

|A[0] + A[1]| = |1 + 4| = 5.

|A[0] + A[2]| = |1 + (-3)| = 2.

|A[1] + A[1]| = |4 + 4| = 8.

|A[1] + A[2]| = |4 + (-3)| = 1.

|A[2] + A[2]| = |(-3) + (-3)| = 6.

所以ans=1.

输入描述:

有多组测数数据,每组数据有两行,第一行包含一个正整数n(0<n<=100000),第二行包含n个整数,分别表示A[0],A[1],A[2],....,A[n-1],(|A[i]|<2^30)。

输入以文件结束。

输出描述:

对于每组数据,输出相应的答案。

答题说明:

输入样例:

3

1 4 -3

1

2

3

-1 -2 -5

3

1 2 3

2

0 5

输出样例:

1

4

2

2

0

/*解题思路:对数组进行快速排序(排序后可以减少枚举的次数),然后枚举求解
*/
#include "stdio.h"
#include "stdlib.h"#define abs(x)  ((x)>0?(x):-1*(x))
#define maxn 100000+10
int a[maxn],n;int cmp(const void* _a,const void* _b){int *a=(int *)_a;int *b=(int *)_b;return (*a-*b);
}int main()
{int ans;while(scanf("%d",&n)&&n>0){int flag=1;for(int i=0;i<n;i++){scanf("%d",&a[i]);if(!a[i]){ans=0; flag=0;}}if(flag){qsort((void *)a, n, sizeof(int), cmp); ans=abs(a[0]*2);       for(int i=0;i<n;i++){int min=abs(2*a[i]);for(int j=i+1,tmp;j<n;j++){tmp=abs(a[i]+a[j]);     if(tmp<min){min=tmp;}else{  //不存在比min更小的解,退出内循环 break;}}if(min<ans) ans=min;}    }           printf("%d\n",ans);   }return 0;
} 

代码超时的说,求高手指点,感激不尽

CSDN挑战编程交流群:372863405

CSDN挑战编程——《绝对值最小》相关推荐

  1. CSDN挑战编程——《数学问题》

    数学问题 题目详情: 给你两个长度为n的正整数序列分别为{a1,a2,a3...an},{b1,b2,b3...bn},0<ai,bi<=100: 设S=max{x1*a1+x2*a2+x ...

  2. CSDN挑战编程——《金色十月线上编程比赛第二题:解密》

    金色十月线上编程比赛第二题:解密 题目详情: 小强是一名学生, 同时他也是一个黑客. 考试结束后不久,他惊讶的发现自己的高等数学科目居然挂了,于是他果断入侵了学校教务部网站.在入侵的过程中,他发现了与 ...

  3. CSDN挑战编程——《金色十月线上编程比赛第一题:小女孩数数》

    金色十月线上编程比赛第一题:小女孩数数 题目详情: [金色十月线上编程比赛规则] 一个小女孩正在用左手手指数数,从1数到n.她从拇指算作1开始数起,然后,食指为2,中指为3,无名指为4,小指为5.接下 ...

  4. ICPC程序设计题解书籍系列之八:(美)斯基纳等:《挑战编程-程序设计竞赛训练手册》

    S书<挑战编程--程序设计竞赛训练手册>题目一览 1 Getting Started UVA100 POJ1207 HDU1032 The 3n + 1 problem[水题] - 海岛B ...

  5. (Step1-500题)UVaOJ+算法竞赛入门经典+挑战编程+USACO

    下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年到1年半年时间完成.打牢基础,厚积薄发. 一.UVaOJ http://uva.onlinej ...

  6. 算法竞赛入门经典+挑战编程+USACO

    下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年到1年半年时间完成.打牢基础,厚积薄发. 一.UVaOJ http://uva.onlinej ...

  7. 计算MATLAB时间复杂度的例子,学编程数学到底有多重要?线性代数能否视为一门程序语言呢?...

    点击上方蓝色字体,关注我们 相信这么努力的你 已经星标了我 老九学堂 你身边的IT导师 学编程数学到底有多重要?在大学数学学科中线性代数是最为抽象的一门课从初等数学到线性代数思维跨度比微积分和概率统计 ...

  8. 勾股定理python思路_趣叮咚编程数学揭秘:为什么勾股定理a+b=c?

    我们都知道: 三角形3个外角之和=360度 可是谁知道为什么等于360度呢? 其实利用编程制作动图演绎了解啦: 那勾股定理a+b=c又是为什么呢? 还有很多有趣的数学公式都可以演绎: 圆的面积公式.圆 ...

  9. scratch数学编程100例_《scratch编程+数学》课程:编程实现数字黑洞冰雹猜想

    冰雹猜想就是指随便给出一个自然数,如果是奇数,那么就给这个数乘以3再加上1:如果是偶数就除以2:依次不停地进行重复计算,可以发现无论这个过程中的数值如何庞大,最终还是会像冰雹一样坠落,变成1,因此就把 ...

最新文章

  1. torch div优化
  2. 李开复写给中国学生的七封信之给中国学生的第七封信——21世纪最需要的7种人才续1...
  3. zabbix内存告警linux,配置zabbix当内存剩余不足10%的时候触发报警
  4. IWMS实现频道页面的方法
  5. android jar 反射,android 第三方jar库 反射得到自己的资源ID
  6. C语言的运算符的优先级与结合性+ASCII表
  7. NFS部署及优化(一)
  8. nginx完全关闭log
  9. flex中设置字体样式
  10. LayaAir Geolocation 获取地理位置
  11. 快递行业面单打印解决方案-快宝云打印
  12. Could not resolve placeholder
  13. 计算机管理事件id10016,【已解决】如何解决事件ID:10016错误
  14. BIP-39, BIP32/BIP-44
  15. 微软又犯二了!WebApi中不支持MVC的OutputCache
  16. matplotlib:使用emoji字体实现简易象形图
  17. Paillier 半同态加密:原理、高效实现方法和应用
  18. 对话三星张代君:Bixby到底与Siri有什么不同? | AI英雄
  19. java 向word中添加excel附件并向excel单元格中加入图片并压缩图片并根据图片动态控制单元格高度宽度
  20. Fastjson反序列化讲解

热门文章

  1. body curl 设置post_curl 命令详解
  2. 计算机的iscsi配置,PC端的iSCSI参数设置方法
  3. mysql游标表间数据迁移_MySQL存储过程--通过游标遍历和异常处理迁移数据到历史表...
  4. Linux常用命令(知道啦就赶紧收藏吧)
  5. HTML 部分常用属性、组成属性|...超链接、路径、锚点、列表、滚动、URL编码、表格、表单、GET和POST
  6. springmvc mybatis 做分页sql 语句
  7. 简单好用的计算器:bc
  8. (八)cmockery中的calculator和run_tests函数的注释代码
  9. lightoj 1044 - Palindrome Partitioning(需要优化的区间dp)
  10. Business Component(BC)和Business Object(BO)