Div4里面交互题,二分答案即可,第一次做出交互题,直接纪念一下
#include<bits/stdc++.h>
using namespace std;
const int N = 200010;
int a[N],s[N];
bool check(int l,int r)
{
cout<<"? "<<r-l+1<<" ";
for(int i=l;i<=r;i++)
cout<<i<<" ";
cout<<endl;
int x;cin>>x;
if(s[r]-s[l-1]!=x) return true;
else return false;
}
int main()
{
int T;cin>>T;
while(T--)
{
int n;cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=n;i++) s[i]=s[i-1]+a[i];
int l=1,r=n;
while(l<r)
{
int mid=(l+r)>>1;
if(check(l,mid)) r=mid;
else l=mid+1;
}
cout<<"! "<<r<<endl;
}
return 0;
}