如果定义好了vector A(n) 再用pushback方法 这时候的vector A的实际长度为2n!!!!!!!
#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
using namespace std;
int main (){
int n;
cin >> n;
vector<int> A,B;
for(int i = 0; i < n; i++){
int a;
cin>> a;
A.push_back(a);
}
sort(A.begin(),A.end());
B.push_back(A[0]);
for(int i = 1; i < n; i++){
if(A[i] != A[i -1]) B.push_back(A[i]);
}
n = B.size();
if(n ==1) cout << "0 0 0 0";
else{
int x = B[n-1] - B[n - 2];
int x2 = B[n - 1] - B[1];
int x3 = B[n - 2] - B[1];
int x4 = B[n - 2] - B[0];
cout <<x <<" " << x2 <<" " << x3 << " " << x4;
}
return 0;
你在第一遍忘了消除相同的元素了 另外 以后见到这种最大次大的 记得判特殊值啊! }