Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- #define int long long
- const int MOD=1e9+7;
- const int INF=1e18;
- int bin_pow(int a, int b){
- int ans=1;
- while(b){
- if(b&1){
- ans*=a;
- }
- a*=a;
- b>>=1;
- }
- return ans;
- }
- signed main(){
- ios_base::sync_with_stdio(false);
- cin.tie(NULL);
- int t;
- cin>>t;
- while(t--){
- int n;
- cin>>n;
- cout<<"? 1 1"<<endl;
- vector<int> v;
- int x, y;
- cin>>x>>y;
- v.push_back(x);
- int l=1, r=3;
- while(true){
- cout<<"? "<<l<<" "<<min(n,r)<<endl;
- int a, b;
- cin>>a>>b;
- if(r<n){
- if(v[l-1]==1){
- if(a==1){
- v.push_back(0);
- v.push_back(0);
- }
- else if(a==2){
- if(b==0){
- v.push_back(0);
- v.push_back(1);
- }
- else{
- v.push_back(1);
- v.push_back(0);
- }
- }
- else if(a==3){
- v.push_back(1);
- v.push_back(1);
- }
- }
- else{
- if(a==0){
- v.push_back(0);
- v.push_back(0);
- }
- else if(a==1){
- if(b==0){
- v.push_back(1);
- v.push_back(0);
- }
- else{
- v.push_back(0);
- v.push_back(1);
- }
- }
- else if(a==2){
- v.push_back(1);
- v.push_back(1);
- }
- }
- l+=2;
- r+=2;
- }
- else{
- if(r==n){
- if(v[l-1]==1){
- if(a==1){
- v.push_back(0);
- v.push_back(0);
- }
- else if(a==2){
- if(b==0){
- v.push_back(0);
- v.push_back(1);
- }
- else{
- v.push_back(1);
- v.push_back(0);
- }
- }
- else if(a==3){
- v.push_back(1);
- v.push_back(1);
- }
- }
- else{
- if(a==0){
- v.push_back(0);
- v.push_back(0);
- }
- else if(a==1){
- if(b==0){
- v.push_back(1);
- v.push_back(0);
- }
- else{
- v.push_back(0);
- v.push_back(1);
- }
- }
- else if(a==2){
- v.push_back(1);
- v.push_back(1);
- }
- }
- }
- else if(r==n+1){
- if(v[l-1]==1){
- if(a==1){
- v.push_back(0);
- }
- else if(a==2){
- v.push_back(1);
- }
- }
- else{
- if(a==0){
- v.push_back(0);
- }
- else if(a==1){
- v.push_back(1);
- }
- }
- }
- break;
- }
- }
- vector<int> ans;
- for(int i=0; i<n; i++) if(v[i]==1) ans.push_back(i+1);
- cout<<"! "<<ans.size()<<' ';
- for(auto it:ans) cout<<it<<" ";
- cout<<endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment