cf1207E——交互,思维

/*
a=Ai^x
b=Bj^x
a^b=Ai^Bj
只要让A[]占后7位,B[]占前7位,就可以算出Bj
然后x=b^bj 
*/

#include<bits/stdc++.h>
using namespace std;
#define N 205

int a,b,A[N],B[N];

void ask(int *a){
    cout<<"? ";
    for(int i=1;i<=100;i++)cout<<a[i]<<" ";
    cout<<endl;
}

int main(){
    for(int i=1;i<=100;i++)
        A[i]=i,B[i]=i*(1<<7);
    ask(A);scanf("%d",&a);
    ask(B);scanf("%d",&b);
    int ans=a^b,ansb=(ans>>7)<<7;
    //cout<<ans<<" "<<ansb<<'\n';
    cout<<"! "<<(ansb^b)<<'\n';
} 

posted on 2019-12-29 21:19  zsben  阅读(146)  评论(0编辑  收藏  举报

导航