经 assert 测试,模数不超过 230。
否则可能会有一大堆的 corner case。
#include <bits/stdc++.h>
#define EVAL(x) #x " = " << (x)
using std::cin;
using std::cout;
using i64 = std::int64_t;
auto main() -> int
{
std::ios_base::sync_with_stdio(false);
cin.tie(nullptr);
auto n = 0, m = 0, rt = 0, mod = 0;
cin >> n >> m >> rt >> mod;
assert(mod <= 1 << 30);
}