70,022
社区成员




#include<iostream>
#include<climits>
#include<cstdlib>
#include<algorithm>
using namespace std;
int compare(const int& a, const int& b){
int x = abs(a), y = abs(b);
return x < y ? 1 : 0;
}
int main(){
int n;
while (cin >> n){
if (n == 0){
cout << '0' << endl;
continue;
}
if (n == 1){
cin >> n;
cout << n + n << endl;
continue;
}
int result = INT_MAX;
int* num = new int[n];
for (int i = 0; i < n; ++i)
cin >> num[i];
sort(num, num + n, compare);
for (int i = 0; i < n - 1; ++i){
if (abs(num[i] + num[i + 1]) < abs(result))
result = num[i] + num[i + 1];
}
if (result>2 * num[0])
result = 2 * num[0];
cout << abs(result) << endl;
delete[] num;
}
}
楼主可以拿这个代码先测试下。