コードテンプレート加筆 + TZTesterの文言変更
assert() を使おう
SRMがドジっ子アピールの場となっている現状を打破すべく
#define NDEBUG $BEGINCUTS #undef NDEBUG $ENDCUTS #include <cassert>
を追加。
全体だとこんな感じ→ https://gist.github.com/naoyat/5821991
これでローカルテストの時だけassert()が使える。こんな感じ。
typedef long long ll; ... bool f(ll x) { ... } ll lo = 1LL, hi = LONG_LONG_MAX; int z = 0; while (true) { // lo:x hi:o assert(lo < hi); assert(0 <= lo); assert(!f(lo)); assert(f(hi)); if (lo+1 == hi) { return hi; } ll mi = (lo + hi)/2; if (f(mi)) hi = mi; else lo = mi; assert(mi >= 0); }
TZTester文言変更:Expected/Received を Expected/Your answer に変えてみる
SRM583 Div2 Easy "SwappingDigits" より。わざと間違えてます。
Test Case #0...PASSED (0.024 msec) Test Case #1...PASSED (0.009 msec) Test Case #2...PASSED (0.006 msec) Test Case #3...FAILED (0.004 msec) Expected: "10234" Your answer: "01234" Test Case #4...FAILED (0.006 msec) Expected: "13218910471211292496" Your answer: "03218919471211292416" Test Case #5...FAILED (0.006 msec) Expected: "10720376171328422763213753122612211005355347513" Your answer: "01720376171328422763213753122612211005355347513"
これでテスト失敗時の視認率が上がるかも。
https://github.com/naoyat/TZTester
↑他にも魔改造が施されているので、ご利用は計画的に&自己責任で!