描述
给出n个自然数,求出2个数绝对值之差最小的2个数,如果有多个满足要求,请输出其和最小的那对
-
输入
-
有多组测试数据
第一行一个整数n (2 <= n <= 1000).
第二行是n个自然数的值
输出
-
输出最近的那2个数即可(递增输出)。
样例输入
-
4 1 3 7 9 4 0 3 0 2
样例输出
-
1 3 0 0
#include<iostream> #include<string.h> #include<stdio.h> #include<ctype.h> #include<algorithm> #include<stack> #include<queue> #include<set> #include<math.h> #include<vector> #include<deque> #include<list> using namespace std; bool cmp(int a,int b) { return a<b; } int main() { int n,i,a[1010],k,t; while(scanf("%d",&n)!=EOF) { k=0;t=0; for(i=0;i<n;i++) cin>>a[i]; sort(a,a+n,cmp); int min=a[n-1]-a[0]; for(i=n-1;i>0;i--) if(a[i]-a[i-1]<=min) { min=a[i]-a[i-1]; k=a[i]; t=a[i-1]; } printf("%d %d\n",t,k); } return 0; }