Advertisement
deadwing97

MARCAPS Tester

Mar 25th, 2019
467
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.99 KB | None | 0 0
  1. #include <iostream>
  2. #include <bits/stdc++.h>
  3. using namespace std;
  4.  
  5. vector < pair < int , int > > v;
  6.  
  7. pair < int , int > ans[1<<20];
  8.  
  9. int main(){
  10.    
  11.     int tc;
  12.     scanf("%d",&tc);
  13.  
  14.     while (tc--) {
  15.  
  16.         int n;
  17.         v.clear();
  18.         scanf("%d",&n);
  19.      
  20.         for(int j = 1 ; j <= n ; j++){
  21.             int x;
  22.             scanf("%d",&x);
  23.             v.push_back({x , j});
  24.             ans[j].first = x;
  25.         }
  26.      
  27.         sort(v.begin() , v.end());
  28.      
  29.         int h = v.size() / 2;
  30.      
  31.         for(int j = 0 ; j < n ; j++)
  32.             ans[v[j].second].second = v[ (j + h) % n ].first;
  33.      
  34.         bool nosol = 0;
  35.         for(int j = 1 ; j <= n ; j++){
  36.             if(ans[j].first == ans[j].second)
  37.                 nosol = 1;
  38.         }
  39.      
  40.         if(nosol) puts("No");
  41.         else{
  42.             puts("Yes");
  43.             for(int j = 1 ; j <= n ; j++){
  44.                 printf("%d ",ans[j].second);
  45.             }
  46.         }
  47.      }
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement