This documentation is automatically generated by online-judge-tools/verification-helper
View the Project on GitHub morioprog/cpplib
#include "util/jury.hpp"
インタラクティブ問題の大枠.
auto jury = Jury<int, bool, 20>()
jury.query(n)
jury.answer(x)
exit(0)
/** * @brief インタラクティブ問題 * @docs docs/util/jury.md */ template <typename T, typename R, int QMX> struct Jury { int query_cnt; map<T, R> memo; T N; Jury() : query_cnt(0) { // N = rand(); #ifdef LOCAL cerr << "N : " << N << endl; #endif } Jury(T _N) : query_cnt(0) { N = _N; #ifdef LOCAL cerr << "N : " << N << endl; #endif } R query(T X) { if (memo.count(X)) return memo[X]; if (++query_cnt > QMX) { cerr << "Query Limit Exceeded" << endl; exit(1); } #ifdef LOCAL cerr << query_cnt << " : " << X << endl; // return memo[n] = ...; #else // cout << "? " << X << endl; // int rsp; cin >> rsp; // return memo[n] = rsp; #endif } void answer(T X) { #ifdef LOCAL if (X == N) { cerr << "AC : " << X << endl; } else { cerr << "WA : " << X << " " << N << endl; } // exit(0); #else // cout << "! " << X << endl; exit(0); #endif } };
#line 1 "util/jury.hpp" /** * @brief インタラクティブ問題 * @docs docs/util/jury.md */ template <typename T, typename R, int QMX> struct Jury { int query_cnt; map<T, R> memo; T N; Jury() : query_cnt(0) { // N = rand(); #ifdef LOCAL cerr << "N : " << N << endl; #endif } Jury(T _N) : query_cnt(0) { N = _N; #ifdef LOCAL cerr << "N : " << N << endl; #endif } R query(T X) { if (memo.count(X)) return memo[X]; if (++query_cnt > QMX) { cerr << "Query Limit Exceeded" << endl; exit(1); } #ifdef LOCAL cerr << query_cnt << " : " << X << endl; // return memo[n] = ...; #else // cout << "? " << X << endl; // int rsp; cin >> rsp; // return memo[n] = rsp; #endif } void answer(T X) { #ifdef LOCAL if (X == N) { cerr << "AC : " << X << endl; } else { cerr << "WA : " << X << " " << N << endl; } // exit(0); #else // cout << "! " << X << endl; exit(0); #endif } };