Advertisement
Guest User

Untitled

a guest
May 25th, 2022
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.82 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. #include <ext/pb_ds/assoc_container.hpp>
  3. using namespace __gnu_pbds;
  4. using namespace std;
  5. #define int long long
  6. #define ps(x,y) fixed<<setprecision(y)<<x
  7. #define ld long double
  8. #define fastio ios_base::sync_with_stdio(false); cin.tie(NULL);
  9. #define endl "\n"
  10. #define setbits(x) __builtin_popcount(x)
  11. #define gcd(a,b) __gcd(a,b)
  12. #define minv(v) *min_element(v.begin(), v.end())
  13. #define maxv(v) *max_element(v.begin(), v.end())
  14. #define print(v) for(auto k : v) cout<<k<<" "; cout<<endl;
  15. const int mod = 1e9+7;
  16. const int bit = 31;
  17. #define input(a) for(int i=0; i<a.size(); i++) cin>>a[i];
  18. typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> pbds;
  19. //__________________________________________________________________________________________________________________
  20.  
  21. int32_t main()
  22. {
  23. fastio;
  24. int t;
  25. cin>>t;
  26. while(t--)
  27. {
  28. int n;
  29. cin>>n;
  30. vector<int> arr(n);
  31. input(arr);
  32. sort(arr.begin(), arr.end());
  33. int j = n-1;
  34. vector<int> temp(n);
  35. for(int i=1; i<n; i+=2){
  36. temp[i] = arr[j--];
  37. }
  38. for(int i=0; i<n; i+=2){
  39. temp[i] = arr[j--];
  40. }
  41. bool possible = true;
  42. for(int i=0; i<n; i++)
  43. {
  44. int left = temp[(i == 0 ? n-1 : i-1)];
  45. int right = temp[(i == n-1 ? 0 : i+1)];
  46. if(temp[i] < left && temp[i] < right)
  47. {
  48.  
  49. }
  50. else if(temp[i] > left && temp[i] > right)
  51. {
  52.  
  53. }
  54. else
  55. possible = false;
  56. }
  57. if(possible){
  58. cout<<"YES"<<endl;
  59. print(temp);
  60. }
  61. else
  62. cout<<"NO"<<endl;
  63. }
  64. return 0;
  65. }
  66.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement