Advertisement
KiK0S

Untitled

Feb 22nd, 2018
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.03 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. #define int long long
  3. using namespace std;
  4. struct Q{
  5.     int startpos, ans;
  6. };
  7. signed main()
  8. {
  9.     ios_base::sync_with_stdio(0);
  10.     cin.tie(0);
  11.     cout.tie(0);
  12.     srand(time(0));
  13.     int n, m;
  14.     cin>>n>>m;
  15.     if(n == 1){
  16.         cout<<"answer 1";
  17.         return 0;
  18.     }
  19.  
  20.     // 3 2 1
  21.     vector<Q> q(n);
  22.     for(int i = 0; i < n; i++){
  23.         q[i] = {i,0};
  24.     }
  25.     for(int i = n-1; i > 0; i--){
  26.         cout<<"swap "<<n<<" "<<1<<endl;
  27.         int valA, valB;
  28.         cin>>valA;
  29.         cout<<"swap "<<n<<" "<<1<<endl;
  30.         cin>>valB;
  31.         q[n-1].ans = valA - valB;
  32.         if(i == 1) break;
  33.         swap(q[i-1], q[n-1]);
  34.         cout<<"swap "<<i<<" "<<n<<endl;
  35.         cin>>valA;
  36.     }
  37.     sort(q.begin(), q.end(), [](Q a, Q b){
  38.          return a.ans < b.ans;
  39.     });
  40.     vector<int> ans(n);
  41.     for(int i = 0; i < n; i++){
  42.         ans[q[i].startpos] = i;
  43.     }
  44.     cout<<"answer ";
  45.     for(int i = 0; i < n; i++){
  46.         cout<<ans[i]+1<<" ";
  47.     }
  48.     return 0;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement