fork download
  1. #include <bits/stdc++.h>
  2. #define ll long long
  3.  
  4. using namespace std;
  5.  
  6. const int MOD = 1e9 + 7;
  7.  
  8. void solve(){
  9. int n;
  10. cin >> n;
  11.  
  12. vector<int> a(n);
  13.  
  14. map<int, int> m;
  15. bool pos = true;
  16. for(int i = 0; i < n; i++){
  17. cin >> a[i];
  18. m[a[i]]++;
  19. if(m[a[i]] > (n + 1) / 2){
  20. pos = false;
  21. }
  22. }
  23. if(n <= 2){
  24. for(auto x: a)cout << x << " ";
  25. cout << "\n";
  26. return;
  27. }
  28. if(!pos){
  29. cout << -1 << "\n";
  30. return;
  31. }
  32. sort(a.begin(), a.end());
  33. for(auto x: m){
  34. if(x.second == (n + 1) / 2){
  35. int p = 0;
  36. int idx = 0;
  37. cout << "YES\n";
  38. while(idx < n){
  39. cout << x.first << " ";
  40. idx++;
  41. if(idx == n)break;
  42. while(a[p] == x.first)p++;
  43. cout << a[p++] << " ";
  44. idx++;
  45. }
  46. cout << "\n";
  47. return;
  48. }
  49. }
  50.  
  51.  
  52.  
  53. vector<int> c, d;
  54. int sz = (n + 1) / 2;
  55. for(int i = 0; i < n; i++){
  56. if(c.size() < sz)c.push_back(a[i]);
  57. else d.push_back(a[i]);
  58. }
  59.  
  60. int x = 0, y = 0;
  61.  
  62. while(x < c.size()){
  63. cout << c[x++] << " ";
  64. if((n % 2) && x == c.size())break;
  65. cout << d[y++] << " ";
  66. }
  67. cout << "\n";
  68.  
  69.  
  70.  
  71. }
  72.  
  73. int main(){
  74. ios_base::sync_with_stdio(false);
  75. cin.tie(NULL);
  76. cout.tie(NULL);
  77.  
  78. int t = 1;
  79. cin >> t;
  80. for(int i = 1; i <= t; i++){
  81. solve();
  82. }
  83. return 0;
  84. }
  85.  
Success #stdin #stdout 0s 5288KB
stdin
1
582
99 104 108 101 108 100 104 103 103 103 103 99 103 103 102 108 99 103 108 104 105 103 106 103 103 110 102 105 103 103 100 106 103 103 106 103 106 103 103 103 103 103 110 103 103 103 99 102 103 103 103 103 107 103 103 100 103 103 104 110 100 103 103 102 102 103 103 108 102 110 103 103 103 103 105 107 101 103 103 103 102 103 103 101 104 107 103 103 99 107 103 103 102 110 103 103 103 103 103 103 106 103 107 105 103 100 103 103 103 108 100 103 103 103 103 103 105 107 109 103 103 103 103 103 103 103 99 103 106 103 103 106 99 110 103 108 103 108 103 103 103 103 105 107 107 100 108 103 105 103 105 101 104 107 103 103 103 103 99 99 99 104 106 107 103 107 101 103 102 103 109 103 103 102 106 110 109 103 101 103 103 103 103 103 103 103 109 100 108 101 107 107 109 103 107 103 103 104 109 103 100 103 103 103 103 103 99 103 107 103 102 103 109 103 103 103 103 103 103 103 101 103 103 104 103 103 107 104 103 103 100 103 103 103 103 103 103 103 101 100 103 107 104 103 110 107 102 101 105 103 110 104 102 104 103 109 101 103 99 108 100 106 103 103 107 106 103 109 104 106 103 103 103 102 108 103 103 105 99 100 103 101 105 108 106 108 103 109 106 102 101 108 99 110 103 100 103 105 103 107 103 103 103 103 103 103 107 103 106 99 102 107 101 107 103 109 101 99 103 103 110 106 103 103 105 103 104 103 110 99 104 102 110 102 103 110 103 106 103 103 103 100 102 107 103 103 103 110 107 103 103 103 110 102 102 99 102 103 107 108 103 104 103 103 103 107 103 110 110 110 102 100 109 103 103 103 103 106 103 103 108 99 103 103 107 103 109 103 103 102 103 103 100 103 103 110 100 109 108 110 103 99 103 103 108 103 110 103 103 103 103 109 103 103 103 103 103 104 103 109 105 105 101 103 103 102 103 104 103 103 102 103 102 103 100 103 108 108 103 103 103 107 103 106 103 110 99 103 103 107 100 100 103 107 99 101 103 103 109 103 103 103 103 107 100 103 103 102 103 104 103 103 103 110 103 103 103 103 101 109 103 103 104 107 107 103 106 102 103 102 101 108 103 103 99 103 109 103 103 103 100 103 109 103 108 103 103 107 103 103 101 105 102 108 107 109 99 107 103 110 103 103 103 106 103 103 102 103 107 103 103 103 104 107 100 103 100 103 103 107 103 101 103 102 103 101 103 103 103 103 109 99 103 100 104 101 110 103 103 103 107 99 105 103 103 101 103 103 103 103 100 108 105 104 103 103 99 103 108 105 109 103
stdout
YES
103 99 103 99 103 99 103 99 103 99 103 99 103 99 103 99 103 99 103 99 103 99 103 99 103 99 103 99 103 99 103 99 103 99 103 99 103 99 103 99 103 99 103 99 103 99 103 99 103 99 103 99 103 99 103 100 103 100 103 100 103 100 103 100 103 100 103 100 103 100 103 100 103 100 103 100 103 100 103 100 103 100 103 100 103 100 103 100 103 100 103 100 103 100 103 100 103 100 103 100 103 100 103 100 103 100 103 100 103 101 103 101 103 101 103 101 103 101 103 101 103 101 103 101 103 101 103 101 103 101 103 101 103 101 103 101 103 101 103 101 103 101 103 101 103 101 103 101 103 101 103 101 103 101 103 101 103 102 103 102 103 102 103 102 103 102 103 102 103 102 103 102 103 102 103 102 103 102 103 102 103 102 103 102 103 102 103 102 103 102 103 102 103 102 103 102 103 102 103 102 103 102 103 102 103 102 103 102 103 102 103 102 103 102 103 102 103 102 103 102 103 102 103 104 103 104 103 104 103 104 103 104 103 104 103 104 103 104 103 104 103 104 103 104 103 104 103 104 103 104 103 104 103 104 103 104 103 104 103 104 103 104 103 104 103 104 103 104 103 104 103 105 103 105 103 105 103 105 103 105 103 105 103 105 103 105 103 105 103 105 103 105 103 105 103 105 103 105 103 105 103 105 103 105 103 105 103 105 103 106 103 106 103 106 103 106 103 106 103 106 103 106 103 106 103 106 103 106 103 106 103 106 103 106 103 106 103 106 103 106 103 106 103 106 103 106 103 106 103 106 103 107 103 107 103 107 103 107 103 107 103 107 103 107 103 107 103 107 103 107 103 107 103 107 103 107 103 107 103 107 103 107 103 107 103 107 103 107 103 107 103 107 103 107 103 107 103 107 103 107 103 107 103 107 103 107 103 107 103 107 103 107 103 107 103 107 103 107 103 107 103 107 103 107 103 107 103 107 103 107 103 107 103 108 103 108 103 108 103 108 103 108 103 108 103 108 103 108 103 108 103 108 103 108 103 108 103 108 103 108 103 108 103 108 103 108 103 108 103 108 103 108 103 108 103 108 103 108 103 108 103 108 103 108 103 109 103 109 103 109 103 109 103 109 103 109 103 109 103 109 103 109 103 109 103 109 103 109 103 109 103 109 103 109 103 109 103 109 103 109 103 109 103 109 103 109 103 109 103 109 103 110 103 110 103 110 103 110 103 110 103 110 103 110 103 110 103 110 103 110 103 110 103 110 103 110 103 110 103 110 103 110 103 110 103 110 103 110 103 110 103 110 103 110 103 110 103 110 103 110 103 110