jatarc2004

Untitled

Apr 13th, 2025
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.45 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define int long long
  5. const int MOD=1e9+7;
  6. const int INF=1e18;
  7.  
  8. int bin_pow(int a, int b){
  9.     int ans=1;
  10.     while(b){
  11.         if(b&1){
  12.             ans*=a;
  13.         }
  14.         a*=a;
  15.         b>>=1;
  16.     }
  17.     return ans;
  18. }
  19.  
  20. signed main(){
  21.     ios_base::sync_with_stdio(false);
  22.     cin.tie(NULL);
  23.     int t;
  24.     cin>>t;
  25.     while(t--){
  26.         int n;
  27.         cin>>n;
  28.         cout<<"? 1 1"<<endl;
  29.         vector<int> v;
  30.         int x, y;
  31.         cin>>x>>y;
  32.         v.push_back(x);
  33.         int l=1, r=3;
  34.         while(true){
  35.             cout<<"? "<<l<<" "<<min(n,r)<<endl;
  36.             int a, b;
  37.             cin>>a>>b;
  38.             if(r<n){
  39.                 if(v[l-1]==1){
  40.                     if(a==1){
  41.                         v.push_back(0);
  42.                         v.push_back(0);
  43.                     }
  44.                     else if(a==2){
  45.                         if(b==0){
  46.                             v.push_back(0);
  47.                             v.push_back(1);
  48.                         }
  49.                         else{
  50.                             v.push_back(1);
  51.                             v.push_back(0);
  52.                         }
  53.                     }
  54.                     else if(a==3){
  55.                         v.push_back(1);
  56.                         v.push_back(1);
  57.                     }
  58.                 }
  59.                 else{
  60.                     if(a==0){
  61.                         v.push_back(0);
  62.                         v.push_back(0);
  63.                     }
  64.                     else if(a==1){
  65.                         if(b==0){
  66.                             v.push_back(1);
  67.                             v.push_back(0);
  68.                         }
  69.                         else{
  70.                             v.push_back(0);
  71.                             v.push_back(1);
  72.                         }
  73.                     }
  74.                     else if(a==2){
  75.                         v.push_back(1);
  76.                         v.push_back(1);
  77.                     }
  78.                 }
  79.                 l+=2;
  80.                 r+=2;
  81.             }
  82.             else{
  83.                 if(r==n){
  84.                     if(v[l-1]==1){
  85.                         if(a==1){
  86.                             v.push_back(0);
  87.                             v.push_back(0);
  88.                         }
  89.                         else if(a==2){
  90.                             if(b==0){
  91.                                 v.push_back(0);
  92.                                 v.push_back(1);
  93.                             }
  94.                             else{
  95.                                 v.push_back(1);
  96.                                 v.push_back(0);
  97.                             }
  98.                         }
  99.                         else if(a==3){
  100.                             v.push_back(1);
  101.                             v.push_back(1);
  102.                         }
  103.                     }
  104.                     else{
  105.                         if(a==0){
  106.                             v.push_back(0);
  107.                             v.push_back(0);
  108.                         }
  109.                         else if(a==1){
  110.                             if(b==0){
  111.                                 v.push_back(1);
  112.                                 v.push_back(0);
  113.                             }
  114.                             else{
  115.                                 v.push_back(0);
  116.                                 v.push_back(1);
  117.                             }
  118.                         }
  119.                         else if(a==2){
  120.                             v.push_back(1);
  121.                             v.push_back(1);
  122.                         }
  123.                     }
  124.                 }
  125.                 else if(r==n+1){
  126.                     if(v[l-1]==1){
  127.                         if(a==1){
  128.                             v.push_back(0);
  129.                         }
  130.                         else if(a==2){
  131.                             v.push_back(1);
  132.                         }
  133.                     }
  134.                     else{
  135.                         if(a==0){
  136.                             v.push_back(0);
  137.                         }
  138.                         else if(a==1){
  139.                             v.push_back(1);
  140.                         }
  141.                     }
  142.                 }
  143.                 break;
  144.             }
  145.         }
  146.         vector<int> ans;
  147.         for(int i=0; i<n; i++) if(v[i]==1) ans.push_back(i+1);
  148.         cout<<"! "<<ans.size()<<' ';
  149.         for(auto it:ans) cout<<it<<" ";
  150.         cout<<endl;
  151.     }
  152. }
Advertisement
Add Comment
Please, Sign In to add comment