This documentation is automatically generated by online-judge-tools/verification-helper
#include "util/randomnumbergenerator.hpp"乱数生成器.
$O(1)$
RandomNumberGenerator rng : 乱数生成器を準備.rng(b) : $[0, b)$から乱数生成.rng(a, b) : $[a, b)$から乱数生成./**
* @brief 乱数生成器
* @docs docs/util/randomnumbergenerator.md
*/
struct RandomNumberGenerator {
    mt19937 mt;
    RandomNumberGenerator()
        : mt(chrono::steady_clock::now().time_since_epoch().count()) {}
    int operator()(int a, int b) {  // [a, b)
        uniform_int_distribution<int> dist(a, b - 1);
        return dist(mt);
    }
    int operator()(int b) {  // [0, b)
        return (*this)(0, b);
    }
};#line 1 "util/randomnumbergenerator.hpp"
/**
* @brief 乱数生成器
* @docs docs/util/randomnumbergenerator.md
*/
struct RandomNumberGenerator {
    mt19937 mt;
    RandomNumberGenerator()
        : mt(chrono::steady_clock::now().time_since_epoch().count()) {}
    int operator()(int a, int b) {  // [a, b)
        uniform_int_distribution<int> dist(a, b - 1);
        return dist(mt);
    }
    int operator()(int b) {  // [0, b)
        return (*this)(0, b);
    }
};