2015年10月17日 星期六

[HOJ] 118 猜數字

二分搜數字的位置

#include<cstdio>
#include<cstring>
#include "interactive/118.h"
int ans[105],tmp[105],n,k,l,r,mid;
 
int main(){
    n=Init();
    for(int j=1;j<=n;j++){
        l=1; r=n;
        while(l!=r){
            mid=l+r>>1;
            memset(tmp,0,sizeof(tmp));
            for(int i=l;i<=mid;i++){
                tmp[i]=j;
            }
            k=Answer(tmp);
            if(k)r=mid;
            else l=mid+1;
        }
        ans[l]=j;
    }
    Answer(ans);
}

沒有留言:

張貼留言