1. 程式人生 > >[互動題][CF1064E]Dwarves, Hats and Extrasensory Abilities:二分

[互動題][CF1064E]Dwarves, Hats and Extrasensory Abilities:二分

分析:

二分,把每個新棋子放在左右端點的中間位置mid,根據顏色判斷該歸為左邊或右邊,再移動左/右端點。

程式碼:

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <cctype>
#include <algorithm>

int n;
char s[6];

int main(){
    scanf("%d",&n);
    n--;
    printf("0 1\n");
    fflush(stdout);
    scanf("%s",s+1);
    if(!n){
        printf("233 332 332 233\n");
        fflush(stdout);
        return 0;
    }
    bool flag=0;
    if(s[1]=='w') flag=0;
    else flag=1;
    int l=0,r=1e9;
    int ansl,ansr;
    while(n--){
        if(!n) ansl=l,ansr=r;
        int mid=((l+r)>>1);
        printf("%d %d\n",mid,1);
        fflush(stdout);
        scanf("%s",s+1);
        if(s[1]=='w'){
            if(!flag) l=mid,ansl=mid;
            else r=mid,ansr=mid;
        }
        else{
            if(!flag) r=mid,ansr=mid;
            else l=mid,ansl=mid;
        }
    }
    printf("%d %d %d %d\n",ansl,2,ansr,0);
    fflush(stdout);
    return 0;
}