fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define pb push_back
  5. #define all(x) x.begin(), x.end()
  6. #include <ext/pb_ds/assoc_container.hpp>
  7. #include <ext/pb_ds/tree_policy.hpp>
  8. using namespace __gnu_pbds;
  9. template <typename T> using o_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
  10. template <typename T, typename R> using o_map = tree<T, R, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
  11. typedef long long ll;
  12.  
  13. #define inf 1e9
  14. #define MOD 1000000007
  15. #define vint vector<int>
  16. #define vll vector<ll>
  17.  
  18. #define no cout << "NO" << endl;
  19.  
  20. void solve() {
  21. ll n ; cin >> n ;
  22. vector <ll > a(n);
  23. map < ll , ll > mp ;
  24. set < ll > st;
  25. for (int i = 0 ; i <n ; i++ ) {
  26. cin >> a[i] ;
  27. st.insert(a[i] ) ;
  28. mp[a[i]]++;
  29. }
  30. int nb = 0 ;
  31. multiset < ll > st2 ;
  32. auto it = st.rbegin();
  33. while (nb <2) {
  34. if (mp[*it]>=2) {
  35. nb ++ ;
  36. mp[*it]-=2;
  37. st2.insert(*it) ;
  38. }
  39. if (*it ==*st.begin()) break ;
  40. it = prev(it) ;
  41.  
  42.  
  43. }
  44. auto it2 = st.begin();
  45. nb = 0 ;
  46. while (nb<2) {
  47. if (mp[*it2]>=2) {
  48. nb ++ ;
  49. mp[*it2]-=2;
  50. st2.insert(*it2) ;
  51.  
  52. }
  53. if (*it2 ==*st.rbegin()) break ;
  54. it2 = next(it2) ;
  55. }
  56. if (st2.size()<4) {
  57. cout <<"NO" << endl ;
  58. return;
  59. }
  60.  
  61. ll maxi1 = *st2.rbegin() , maxi2= *prev(st2.rbegin()) ;
  62. ll mini1 = *st2.begin() , mini2 = *next(st2.begin()) ;
  63. cout << mini1 << " " << mini2 <<" " << mini1 << " " << maxi2 << " " << maxi1 << " " <<maxi2<< " " << mini1 << " " << maxi2<< endl ;
  64. return ;
  65.  
  66.  
  67.  
  68.  
  69.  
  70. }
  71.  
  72.  
  73. int main() {
  74. ios::sync_with_stdio(false);
  75. cin.tie(nullptr);
  76.  
  77. #ifndef ONLINE_JUDGE
  78. freopen("input.txt", "r", stdin);
  79. freopen("output.txt", "w", stdout);
  80. #endif
  81.  
  82. int t = 1;
  83. cin >> t;
  84. while (t--) {
  85. solve();
  86. }
  87.  
  88. return 0;
  89. }
  90.  
  91.  
  92.  
Success #stdin #stdout 0.01s 5288KB
stdin
Standard input is empty
stdout
NO