基本没写过这种题,平时做题见的很少。
#include <bits/stdc++.h>
using namespace std;
int p[1010];
int m,n;
int main()
{
scanf("%d%d",&m,&n);
int cnt=0;
for(int i=0;i<n;++i)
{
printf("1\n");
fflush(stdout);//
int flag;
scanf("%d",&flag);
if(flag==1) p[i]=1;//提前搞出p数列
else if(flag==-1) p[i]=0;
else exit(0);
}
int l=1,r=m,i=0;
while(l<=r)
{
int mid=(l+r)>>1;
printf("%d\n",mid);
fflush(stdout);//
int flag;
scanf("%d",&flag);
if(flag==0)
exit(0);
if(p[i%n]==0)
{
if(flag==1)
r=mid-1;
else l=mid+1;
}
else
{
if(flag==1)
l=mid+1;
else r=mid-1;
}
i++;
}
return 0;
}