結果
問題 |
No.246 質問と回答
|
ユーザー |
|
提出日時 | 2017-05-01 18:43:22 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 57 ms / 2,000 ms |
コード長 | 1,272 bytes |
コンパイル時間 | 527 ms |
コンパイル使用メモリ | 55,228 KB |
実行使用メモリ | 25,220 KB |
平均クエリ数 | 30.90 |
最終ジャッジ日時 | 2024-07-16 20:11:34 |
合計ジャッジ時間 | 3,877 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 30 |
コンパイルメッセージ
main.cpp: In function ‘REALM getRealm(REALM, bool)’: main.cpp:45:1: warning: no return statement in function returning non-void [-Wreturn-type] 45 | } | ^
ソースコード
#include <iostream> #define questionMAX 100 /* answer = true := 以上 answer = false := 未満 */ class REALM { public: unsigned long long N_MAX, N_MIN, N_MEAN; void getMean(void) { N_MEAN = (N_MAX + N_MIN) / 2; } }; bool question(int x) { bool answer; std::cout << "? " << x << std::endl; std::cin >> answer; if(answer) { return true; } else { return false; } } REALM getRealm(REALM realm_prev, bool answer) { REALM realm_next; } int main(void) { REALM realm; realm.N_MAX = 1000000000; realm.N_MIN = 1; realm.getMean(); for(int i = 0; i < questionMAX; i ++) { if(question(realm.N_MEAN)) { realm.N_MIN = realm.N_MEAN; realm.getMean(); } else { realm.N_MAX = realm.N_MEAN - 1; realm.getMean(); } if(realm.N_MAX == realm.N_MIN) { std::cout << "! " << realm.N_MAX << std::endl << std::flush; break; } else if(realm.N_MIN == realm.N_MAX - 1) { if(question(realm.N_MAX)) { std::cout << "! " << realm.N_MAX << std::endl << std::flush; break; } else { std::cout << "! " << realm.N_MIN << std::endl << std::flush; break; } } //for debug //std::cout << realm.N_MIN << " <= x <= " << realm.N_MAX << std::endl; } return 0; }