結果

問題 No.3212 SUPER Guess the Number
ユーザー alcea
提出日時 2025-07-25 23:05:03
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 22 ms / 2,000 ms
コード長 673 bytes
コンパイル時間 1,581 ms
コンパイル使用メモリ 195,128 KB
実行使用メモリ 25,972 KB
平均クエリ数 22.67
最終ジャッジ日時 2025-07-25 23:05:06
合計ジャッジ時間 2,745 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 12
権限があれば一括ダウンロードができます

ソースコード

diff #

#include<bits/stdc++.h>
using namespace std;
int main(){
  int l=0,r=1<<20;
  cout<<"? "<<l<<endl;
  int say=r,las=l;
  while(r-l>1){
    cout<<"? "<<say<<endl;
    int ret;
    cin>>ret;
    int m=(l+r)/2;
    if(las<say){
      if(ret){
        l=m;
        las=say;
        m=(l+r)/2;
        say=2*m-say;
      }
      else{
        r=m;
        las=say;
        m=(l+r)/2;
        say=2*m-las;
      }
    }
    else{
      if(ret){
        r=m+1;
        las=say;
        m=(l+r)/2;
        say=2*m-say;
      }
      else{
        l=m+1;
        las=say;
        m=(l+r)/2;
        say=2*m-las;
      }
    }
    //cerr<<l<<" "<<r<<endl;
  }
  cout<<"! "<<l<<endl;
}
0