fork(1) download
  1. #include <iostream>
  2. using namespace std;
  3. int main() {
  4. int t;
  5. cin>>t;
  6. while(t--){
  7. int n;
  8. cin>>n;
  9. int a[n+1], pr[n+1]={0,};
  10. for(int i=1; i<=n; i++){
  11. cin>>a[i];
  12. pr[i]=pr[i-1]+a[i];
  13. }
  14. int l=1, r=n;
  15. while(l<r){
  16. int m=(l+r)/2;
  17. cout<<"? "<<m-l+1<<" ";
  18. for(int i=l; i<=m; i++)
  19. cout<<i<<" ";
  20. cout<<endl;
  21. int x;
  22. cin>>x;
  23. if(x==pr[m]-pr[l-1])
  24. l=m+1;
  25. else
  26. r=m;
  27. }
  28. cout<<"! "<<l<<endl;
  29. }
  30. }
  31.  
Success #stdin #stdout 0.01s 5324KB
stdin
2
5
1 2 3 4 5

11

6

3

7
1 2 3 5 3 4 2

12

6
stdout
? 3 1 2 3 
? 2 1 2 
? 1 1 
! 1
? 4 1 2 3 4 
? 2 1 2 
? 1 1 
! 1