PTA 7-1数表(20点)


問題を作る前に:
明ちゃんは勉強が好きないい子で、授業中に先生がこんな宿題を出しました.
N個の正の整数からなる1枚の数表に基づいて、2つを加算して新しい数(N∗(N−1)/2個)を得、その後、新しい数を非減算で並べ替えた.
例えば、数表に1、4、3、9の4つの数が含まれている場合、正解は4、5、7、10、12、13です.
プログラミングして明ちゃんのこの問題を完成させてください.
入力形式:データは2行あり、1行目は整数N(1)
2行目は、数表のN個の整数(0≦整数≦5000)であり、隣接する整数間は1つのスペースで区切られている.
入力したN個の整数が重複しないことを確認します.
≪出力フォーマット|Output Format|emdw≫:昇順に並べられた整数のセットの和を出力し、隣接する整数の間をスペースで区切ります.
入力サンプル:ここで入力のセットを指定します.例:
4
1 4 3 9

出力サンプル:ここで対応する出力を示します.例:
4 5 7 10 12 13

メソッド:2つの加算値を1つのコンテナで格納し、コンテナをソートして出力します.
#include
#include
#include
using namespace std;

int main(){
   int n;
   int a[200];
   vector<int>vec; 
   cin>>n;
   for(int i=0;i<=n-1;i++){
     cin>>a[i];
   }
  if(n==1){
  cout<<a[0];
  return 0;
  }
  for(int i=0;i<=n-1;i++){
      int ini=0;
      for(int h=i+1;h<=n-1;h++){
       ini=a[i]+a[h];
       vec.push_back(ini);}
  }
  
  sort(vec.begin(), vec.end());  //     
  for(vector<int>::iterator it=vec.begin(); it!=vec.end()-1; it++){
        cout<<*it<<" ";
    }
  cout<<vec.back();
  return 0;
}