Advertisement
Guest User

..

a guest
Jun 18th, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.83 KB | None | 0 0
  1.  
  2. #include <bits/stdc++.h>
  3. using namespace std;
  4. int n,p,q,p1,p2;
  5. vector <int> a,b,c;
  6. int main() {
  7.     cin>>n;
  8.     for(int i=1;n>=i;i++)
  9.         c.push_back(i);
  10.     while(n)
  11.     {
  12.         random_shuffle(c.begin(),c.end());
  13.         cout<<"Q "<<n/2<<" ";
  14.         for(int i=0;n/2>i;i++)
  15.             cout<<c[i]<<" ";
  16.             cout<<endl;
  17.     cin>>p;
  18.     if(p!=0 and p!=n/2)
  19.         {continue;}
  20.      cout<<"Q "<<n-n/2<<" ";
  21.         for(int i=n/2;n>i;i++)
  22.             cout<<c[i]<<" ";
  23.         cout<<endl;
  24.         cout.flush();
  25.     cin>>q;
  26.     if(q!=0 and q!=n-n/2)
  27.         {continue;}
  28.     if(p==0)
  29.     {
  30.         for(int i=0;n/2>i;i++)
  31.         {
  32.             b.push_back(c[i]);
  33.         }
  34.     }
  35.     if(q==0)
  36.     {
  37.         for(int i=n/2;n>i;i++)
  38.         {
  39.             b.push_back(c[i]);
  40.         }
  41.     }
  42.     if(p==n/2)
  43.     {
  44.         for(int i=0;n/2>i;i++)
  45.         {
  46.             a.push_back(c[i]);
  47.         }
  48.     }
  49.     if(q==n-n/2)
  50.     {
  51.         for(int i=n/2;n>i;i++)
  52.         {
  53.             a.push_back(c[i]);
  54.         }
  55.     }
  56.     break;
  57.     }
  58. int pocz=0;
  59. int k=a.size();
  60. while(k>pocz+1)
  61. {
  62.     int s=(pocz+k)/2;
  63.     int x=b.size()+s;
  64.     cout<<"Q "<<x<<" ";
  65.     for(int i=0;b.size()>i;i++)
  66.         cout<<b[i]<<" ";
  67.     for(int i=0;s>i;i++)
  68.         cout<<a[i]<<" ";
  69.         cout<<endl;
  70.         cout.flush();
  71.     cin>>p;
  72.     if(p==0)
  73.     {
  74.         pocz=s;
  75.     }
  76.     else
  77.         k=s;
  78. }
  79. p1=a[pocz];
  80.  pocz=0;
  81.  k=b.size();
  82. while(k>pocz+1)
  83. {
  84.     int s=(pocz+k)/2;
  85.     int x=a.size()+s;
  86.     cout<<"Q "<<x<<" ";
  87.     for(int i=0;a.size()>i;i++)
  88.         cout<<a[i]<<" ";
  89.     for(int i=0;s>i;i++)
  90.         cout<<b[i]<<" ";
  91.         cout<<endl;
  92.         cout.flush();
  93.     cin>>p;
  94.     if(p==x)
  95.     {
  96.         pocz=s;
  97.     }
  98.     else
  99.         k=s;
  100. }
  101. p2=b[pocz];
  102. cout<<"A "<<p1<<" "<<p2<<endl;
  103.     return 0;
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement