fork download
  1. #include<bits/stdc++.h>
  2. #include<vector>
  3. #include<math.h>
  4. #define fast ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
  5. using namespace std;
  6.  
  7. int main(){
  8.  
  9. fast
  10. int t;
  11. cin>>t;
  12. while(t--){
  13. int n;
  14. cin>>n;
  15. int a[n];
  16. int flag = 0;
  17. set<int> s;
  18. unordered_map<int,int> mp;
  19. int max = INT_MIN;
  20. for(int i=0;i<n;i++){
  21. cin>>a[i];
  22. if(a[i]>max){
  23. max = a[i];
  24. }
  25. mp[a[i]]++;
  26. if(mp[a[i]]>2){
  27. flag = 1;
  28. break;
  29. }
  30.  
  31. }
  32. if(mp[max]>1){
  33. flag = 1;
  34. }
  35. if(flag==1){
  36. cout<<"NO"<<endl;
  37. }
  38. else{
  39. sort(a,a+n);
  40. vector<int> v;
  41. for(int i=0;i<n;i++){
  42. s.insert(a[i]);
  43. if(mp[a[i]]==2){
  44. v.push_back(a[i]);
  45. mp[a[i]]--;
  46. }
  47. }
  48.  
  49. cout<<"YES"<<endl;
  50.  
  51. for(auto &x:s){
  52. cout<<x<<" ";
  53. }
  54. sort(v.begin(),v.end(),greater<int>());
  55. for(auto &y:v){
  56. cout<<y<<" ";
  57. }cout<<endl;
  58. v.clear();
  59. s.clear();
  60. mp.clear();
  61.  
  62.  
  63.  
  64.  
  65. }
  66.  
  67.  
  68.  
  69. }
  70. }
  71.  
Success #stdin #stdout 0s 4408KB
stdin
5
4
1 3 2 4
4
1 3 2 4
6
1 10 10 10 20 15
5
1 1 2 2 3
4
1 2 3 3
stdout
YES
1 2 3 4 
YES
1 2 3 4 
NO
NO
NO