Language: C++

#include <algorithm>
#include <cstdint>
#include <cassert>
#include <cmath>
#include <cstdio>
#include <deque>
#include <iomanip>
#include <iostream>
#include <map>
#include <queue>
#include <set>
#include <stack>
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <vector>
#include <cfloat>

using namespace std;

using lint=int64_t;
using uint=uint32_t;
using ulint=uint64_t;

template<class T>
using vector2d=vector<vector<T>>;

template<class T>
bool UpdateMax(T &a, const T &b){
  if(a<b){
    a=b;
    return true;
  }else{
    return false;
  }
}

template<class T>
bool UpdateMin(T &a, const T &b){
  if(a>b){
    a=b;
    return true;
  }else{
    return false;
  }
}

template <class T>
void OutVec(const vector<T>& vec){
  for(int i = 0; i < vec.size() - 1; ++i){
    cout<<vec[i]<<" ";
  }
  cout<<vec.back()<<endl;
}

template <class T>
void OutVec2d(const vector2d<T>& vec){
  for(auto v:vec){
    OutVec(v);
  }
}

int main(){
  cout << std::fixed << std::setprecision(16);
  cin.tie(nullptr);
  std::ios::sync_with_stdio(false);

  int n;
  cin>>n;
  unordered_set<int> result;
  if(n==3){
    result.insert(2);
    result.insert(5);
    result.insert(63);
  }
  else if(n==4){
    result.insert(2);
    result.insert(5);
    result.insert(63);
    result.insert(20);
  }
  else if(n==5){
    result.insert(2);
    result.insert(5);
    result.insert(63);
    result.insert(20);
    result.insert(30);
  }
  if(n<=5){
    vector<int> res_vec;
    for(auto v:result){
      res_vec.push_back(v);
    }
    OutVec(res_vec);
    return 0;
  }

  int sum=120;
#include <algorithm>
#include <cstdint>
#include <cassert>
#include <cmath>
#include <cstdio>
#include <deque>
#include <iomanip>
#include <iostream>
#include <map>
#include <queue>
#include <set>
#include <stack>
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <vector>
#include <cfloat>

  using namespace std;

  using lint=int64_t;
  using uint=uint32_t;
  using ulint=uint64_t;

  template<class T>
  using vector2d=vector<vector<T>>;

  template<class T>
  bool UpdateMax(T &a, const T &b){
    if(a<b){
      a=b;
      return true;
    }else{
      return false;
    }
  }

  template<class T>
  bool UpdateMin(T &a, const T &b){
    if(a>b){
      a=b;
      return true;
    }else{
      return false;
    }
  }

  template <class T>
  void OutVec(const vector<T>& vec){
    for(int i = 0; i < vec.size() - 1; ++i){
      cout<<vec[i]<<" ";
    }
    cout<<vec.back()<<endl;
  }

  template <class T>
  void OutVec2d(const vector2d<T>& vec){
    for(auto v:vec){
      OutVec(v);
    }
  }

  int main(){
    cout << std::fixed << std::setprecision(16);
    cin.tie(nullptr);
    std::ios::sync_with_stdio(false);

    int n;
    cin>>n;
    unordered_set<int> result;
    if(n==3){
      result.insert(2);
      result.insert(5);
      result.insert(63);
    }
    else if(n==4){
      result.insert(2);
      result.insert(5);
      result.insert(63);
      result.insert(20);
    }
    else if(n==5){
      result.insert(2);
      result.insert(5);
      result.insert(63);
      result.insert(20);
      result.insert(30);
    }
    if(n<=5){
      vector<int> res_vec;
      for(auto v:result){
        res_vec.push_back(v);
      }
      OutVec(res_vec);
      return 0;
    }

    int sum=0;

    int k=0;
    for(;;k++){
      result.insert(6*k+2);
      sum+=6*k+2;
      if(result.size()==n) break;
      result.insert(6*k+3);
      sum+=6*k+3;
      if(result.size()==n) break;
      result.insert(6*k+4);
      sum+=6*k+4;
      if(result.size()==n) break;
      result.insert(6*k+6);
      sum+=6*k+6;
      if(result.size()==n) break;

    }

    if(sum%6==2){
      result.erase(8);
      result.insert(6*(k+1));
    }else if(sum%6==3){
      result.erase(9);
      result.insert(6*(k+1));
    }else if(sum%6==5){
      result.erase(9);
      result.insert(6*(k+1)+4);
    }
    vector<int> res_vec;
    for(auto v:result){
      res_vec.push_back(v);
    }
    OutVec(res_vec);
    return 0;


    return 0;
  }


  int k=0;
  for(;;k++){
    result.insert(6*k+2);
    sum+=6*k+2;
    if(result.size()==n) break;
    result.insert(6*k+3);
    sum+=6*k+3;
    if(result.size()==n) break;
    result.insert(6*k+4);
    sum+=6*k+4;
    if(result.size()==n) break;
    result.insert(6*k+6);
    sum+=6*k+6;
    if(result.size()==n) break;

  }

  if(sum%6==2){
    result.erase(8);
    result.insert(6*(k+1));
  }else if(sum%6==3){
    result.erase(9);
    result.insert(6*(k+1));
  }else if(sum%6==5){
    result.erase(9);
    result.insert(6*(k+1)+4);
  }
  vector<int> res_vec;
  for(auto v:result){
    res_vec.push_back(v);
  }
  OutVec(res_vec);
  return 0;


  return 0;
}



Compiler output:
a.cc: In function 'int main()':
a.cc:123:3: error: a template declaration cannot appear at block scope
  123 |   template<class T>
      |   ^~~~~~~~
a.cc:136:3: error: a template declaration cannot appear at block scope
  136 |   template<class T>
      |   ^~~~~~~~
a.cc:154:3: error: a template declaration cannot appear at block scope
  154 |   template <class T>
      |   ^~~~~~~~