codeforces 1011D Rocket(交互题)

基本没写过这种题,平时做题见的很少。

#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;
}

猜你喜欢

转载自blog.csdn.net/dllpxfire/article/details/81265638
今日推荐