Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- int n,p,q,p1,p2;
- vector <int> a,b,c;
- int main() {
- cin>>n;
- for(int i=1;n>=i;i++)
- c.push_back(i);
- while(n)
- {
- random_shuffle(c.begin(),c.end());
- cout<<"Q "<<n/2<<" ";
- for(int i=0;n/2>i;i++)
- cout<<c[i]<<" ";
- cout<<endl;
- cin>>p;
- if(p!=0 and p!=n/2)
- {continue;}
- cout<<"Q "<<n-n/2<<" ";
- for(int i=n/2;n>i;i++)
- cout<<c[i]<<" ";
- cout<<endl;
- cout.flush();
- cin>>q;
- if(q!=0 and q!=n-n/2)
- {continue;}
- if(p==0)
- {
- for(int i=0;n/2>i;i++)
- {
- b.push_back(c[i]);
- }
- }
- if(q==0)
- {
- for(int i=n/2;n>i;i++)
- {
- b.push_back(c[i]);
- }
- }
- if(p==n/2)
- {
- for(int i=0;n/2>i;i++)
- {
- a.push_back(c[i]);
- }
- }
- if(q==n-n/2)
- {
- for(int i=n/2;n>i;i++)
- {
- a.push_back(c[i]);
- }
- }
- break;
- }
- int pocz=0;
- int k=a.size();
- while(k>pocz+1)
- {
- int s=(pocz+k)/2;
- int x=b.size()+s;
- cout<<"Q "<<x<<" ";
- for(int i=0;b.size()>i;i++)
- cout<<b[i]<<" ";
- for(int i=0;s>i;i++)
- cout<<a[i]<<" ";
- cout<<endl;
- cout.flush();
- cin>>p;
- if(p==0)
- {
- pocz=s;
- }
- else
- k=s;
- }
- p1=a[pocz];
- pocz=0;
- k=b.size();
- while(k>pocz+1)
- {
- int s=(pocz+k)/2;
- int x=a.size()+s;
- cout<<"Q "<<x<<" ";
- for(int i=0;a.size()>i;i++)
- cout<<a[i]<<" ";
- for(int i=0;s>i;i++)
- cout<<b[i]<<" ";
- cout<<endl;
- cout.flush();
- cin>>p;
- if(p==x)
- {
- pocz=s;
- }
- else
- k=s;
- }
- p2=b[pocz];
- cout<<"A "<<p1<<" "<<p2<<endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement