結果
| 問題 |
No.246 質問と回答
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2017-05-01 18:38:09 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,248 bytes |
| コンパイル時間 | 361 ms |
| コンパイル使用メモリ | 54,492 KB |
| 実行使用メモリ | 25,844 KB |
| 平均クエリ数 | 30.00 |
| 最終ジャッジ日時 | 2024-07-16 12:52:21 |
| 合計ジャッジ時間 | 3,511 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | WA * 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;
}