QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#381901 | #144. Primitive root / 原根 | Isrothy | 10 ✓ | 1ms | 3848kb | C++23 | 7.1kb | 2024-04-07 21:37:06 | 2024-04-07 21:37:08 |
Judging History
answer
#include <cmath>
#include <functional>
#include <iostream>
#include <numeric>
#include <optional>
#include <queue>
#include <random>
#include <span>
#include <unordered_map>
#include <vector>
int32_t constexpr mul_mod(int32_t a, int32_t b, int32_t mod) {
return static_cast<int32_t>(static_cast<int64_t>(a) * b % mod);
}
int64_t constexpr mul_mod(int64_t a, int64_t b, int64_t mod) {
#ifdef __SIZEOF_INT128__
return static_cast<int64_t>(static_cast<__int128>(a) * b % mod);
#else
int64_t res = 0;
for (b = (b % mod + mod) % mod; b; b >>= 1) {
if (b & 1) {
res = (res + a) % mod;
}
a = (a + a) % mod;
}
return res;
#endif
}
template<typename T>
constexpr std::tuple<T, T, T> ex_gcd(const T &a, const T &b) {
if (b == 0) {
return {a, T(1), T(0)};
}
auto [d, x, y] = ex_gcd(b, a % b);
return {d, y, x - a / b * y};
}
template<typename T, typename U>
constexpr T power(T x, U k, const std::function<T(T, T)> &multiply) {
T res{1};
for (; k; k >>= 1) {
if (k & 1) {
res = multiply(res, x);
}
x = multiply(x, x);
}
return res;
}
template<typename T, typename U>
constexpr T power(T x, U k, const T &mod) {
T res{1};
for (; k; k >>= 1) {
if (k & 1) {
res = mul_mod(res, x, mod);
}
x = mul_mod(x, x, mod);
}
return res;
}
template<typename T>
constexpr T inverse(const T &a, const T &mod) {
auto [d, x, y] = ex_gcd(a, mod);
return d * x;
}
template<typename T>
std::optional<T> bsgs(const T &a, T b, const T &mod) {
if (mod == 1) {
return 0;
}
T w{1}, x{1}, s{static_cast<T>(std::sqrt(mod)) + 1};
std::unordered_map<T, T> map;
map.reserve(s);
for (T k = 1; k <= s; ++k) {
b = mul_mod(b, a, mod);
w = mul_mod(w, a, mod);
map[b] = k;
}
for (T k = 1; k <= s; ++k) {
x = mul_mod(x, w, mod);
if (map.contains(x)) {
return (k * s - map[x]) % (mod - 1);
}
}
return std::nullopt;
}
template<typename T>
std::optional<T> ex_bsgs(T a, T b, const T &mod) {
a = (a % mod + mod) % mod;
b = (b % mod + mod) % mod;
if (b == 1 || mod == 1) {
return 0;
}
auto d = gcd(a, mod);
if (b % d) {
return std::nullopt;
}
if (d == 1) {
return bsgs(a, b, mod);
}
auto g = inverse(a / d, mod / d);
auto x = ex_bsgs(a, b / d * g, mod / d);
if (!x.has_value()) {
return std::nullopt;
}
return x.value() + 1;
}
template<typename T>
struct Crt {
std::vector<T> mt;
T m{};
Crt() = default;
explicit Crt(std::span<T> a) : mt(a.size()) {
m = std::accumulate(a.begin(), a.end(), T{1}, std::multiplies<>());
for (size_t i = 0; i < a.size(); ++i) {
auto mi = m / a[i];
mt[i] = mi * inverse(mi, a[i]) % m;
}
}
T query(std::span<T> b) {
T res = 0;
for (size_t i = 0; i < mt.size(); ++i) {
res = (res + b[i] * mt[i]) % m;
}
return res;
}
};
template<typename T>
auto ex_crt(T a1, T m1, T a2, T m2) -> std::optional<std::pair<T, T>> {
auto [d, x, y] = ex_gcd(m1, m2);
if ((a2 - a1) % d) {
return std::nullopt;
}
auto m = m1 / d * m2;
auto t = ((a2 - a1) / d * x % (m2 / d)) * m1 % m;
auto a = (a1 + t) % m;
if (a < 0) {
a += m;
}
return std::pair{a, m};
}
auto sieve_of_euler(size_t n) {
std::vector<int> primes;
std::vector<bool> is_composite(n);
primes.reserve(static_cast<size_t>(static_cast<double>(n) / std::log(n)));
primes.push_back(0);
for (int i = 2; i < n; ++i) {
if (!is_composite[i]) {
primes.push_back(i);
}
for (size_t j = 1; j < primes.size() && i * primes[j] < n; ++j) {
is_composite[i * primes[j]] = true;
if (i % primes[j] == 0) {
break;
}
}
}
return std::pair{primes, is_composite};
}
template<typename T>
bool miller_rabin_test(const T &n) {
if (n < 2) {
return false;
}
if (~n & 1) {
return n == 2;
}
T d = n - 1, s = 0;
for (; ~d & 1; d >>= 1) {
++s;
}
static constexpr auto p = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37};
return std::none_of(p.begin(), p.end(), [=](auto a) {
if (a == n) {
return false;
}
T x = power<T, T>(a, d, n);
if (x == 1 || x == n - 1) {
return false;
}
for (int i = 1; i < s; ++i) {
x = mul_mod(x, x, n);
if (x == n - 1) {
return false;
}
}
return true;
});
}
template<typename T>
T pollard_rho(const T &n) {
if (miller_rabin_test(n)) {
return n;
}
for (auto p: {2, 3, 5, 7, 11, 13, 17, 19, 23, 29}) {
if (n % p == 0) {
return p;
}
}
std::mt19937 mt_rand(std::random_device{}());
std::uniform_int_distribution<T> dist(1, n - 1);
while (true) {
auto c = dist(mt_rand);
auto f = [&](const T &x) {
return (mul_mod(x, x, n) + c) % n;
};
auto t = f(0), r = f(t);
int steps = 1;
while (t != r) {
T prod{1};
for (int i = 0; i < steps; ++i) {
if (auto tmp = mul_mod(prod, std::abs(t - r), n)) {
prod = tmp;
t = f(t);
r = f(f(r));
} else {
break;
}
}
if (auto d = std::gcd(prod, n); d != 1) {
return d;
}
steps = std::min(128, steps << 1);
}
}
}
template<typename T>
auto prime_factors(const T &n) {
std::queue<T> q;
std::vector<T> res;
for (q.push(n); !q.empty(); q.pop()) {
if (auto x = q.front(); miller_rabin_test(x)) {
res.push_back(x);
} else {
auto d = pollard_rho(x);
q.push(d);
q.push(x / d);
}
}
std::sort(res.begin(), res.end());
res.erase(std::unique(res.begin(), res.end()), res.end());
return res;
}
template<typename T>
std::optional<T> primitive_root(T n) {
if (n == 2 || n == 4) {
return n - 1;
}
if (n == 1 || (n & 3) == 0) {
return std::nullopt;
}
auto a = prime_factors(n);
if (2 < a.size() || (a.size() == 2 && a[0] != 2)) {
return std::nullopt;
}
T m = a.size() == 2 ? n / 2 / a[1] * (a[1] - 1) : n / a[0] * (a[0] - 1);
auto b = prime_factors(m);
for (T g{2}; g < n; ++g) {
if (power(g, m, n) == 1
&& std::all_of(b.begin(), b.end(), [&](auto p) { return power(g, m / p, n) != 1; })) {
return g;
}
}
return std::nullopt;
}
int main() {
int64_t n;
std::cin >> n;
std::cout << primitive_root(n).value_or(-1) << std::endl;
return 0;
}
这程序好像有点Bug,我给组数据试试?
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 1
Accepted
Test #1:
score: 1
Accepted
time: 0ms
memory: 3568kb
input:
433
output:
5
result:
ok good solution
Test #2:
score: 0
Accepted
time: 0ms
memory: 3632kb
input:
197
output:
2
result:
ok good solution
Test #3:
score: 0
Accepted
time: 0ms
memory: 3584kb
input:
733
output:
6
result:
ok good solution
Test #4:
score: 0
Accepted
time: 0ms
memory: 3776kb
input:
859
output:
2
result:
ok good solution
Test #5:
score: 0
Accepted
time: 0ms
memory: 3632kb
input:
449
output:
3
result:
ok good solution
Test #6:
score: 0
Accepted
time: 0ms
memory: 3588kb
input:
263
output:
5
result:
ok good solution
Test #7:
score: 0
Accepted
time: 0ms
memory: 3516kb
input:
683
output:
5
result:
ok good solution
Test #8:
score: 0
Accepted
time: 0ms
memory: 3596kb
input:
17
output:
3
result:
ok good solution
Test #9:
score: 0
Accepted
time: 0ms
memory: 3788kb
input:
359
output:
7
result:
ok good solution
Test #10:
score: 0
Accepted
time: 0ms
memory: 3788kb
input:
89
output:
3
result:
ok good solution
Test #11:
score: 0
Accepted
time: 0ms
memory: 3624kb
input:
647
output:
5
result:
ok good solution
Test #12:
score: 0
Accepted
time: 0ms
memory: 3844kb
input:
487
output:
3
result:
ok good solution
Test #13:
score: 0
Accepted
time: 0ms
memory: 3628kb
input:
677
output:
2
result:
ok good solution
Test #14:
score: 0
Accepted
time: 0ms
memory: 3712kb
input:
829
output:
2
result:
ok good solution
Test #15:
score: 0
Accepted
time: 0ms
memory: 3564kb
input:
227
output:
2
result:
ok good solution
Test #16:
score: 0
Accepted
time: 0ms
memory: 3584kb
input:
151
output:
6
result:
ok good solution
Test #17:
score: 0
Accepted
time: 0ms
memory: 3772kb
input:
607
output:
3
result:
ok good solution
Test #18:
score: 0
Accepted
time: 0ms
memory: 3512kb
input:
661
output:
2
result:
ok good solution
Test #19:
score: 0
Accepted
time: 0ms
memory: 3780kb
input:
151
output:
6
result:
ok good solution
Test #20:
score: 0
Accepted
time: 0ms
memory: 3708kb
input:
101
output:
2
result:
ok good solution
Test #21:
score: 0
Accepted
time: 0ms
memory: 3544kb
input:
5
output:
2
result:
ok good solution
Test #22:
score: 0
Accepted
time: 0ms
memory: 3780kb
input:
877
output:
2
result:
ok good solution
Test #23:
score: 0
Accepted
time: 0ms
memory: 3844kb
input:
139
output:
2
result:
ok good solution
Test #24:
score: 0
Accepted
time: 0ms
memory: 3568kb
input:
389
output:
2
result:
ok good solution
Test #25:
score: 0
Accepted
time: 0ms
memory: 3496kb
input:
421
output:
2
result:
ok good solution
Test #26:
score: 0
Accepted
time: 0ms
memory: 3564kb
input:
709
output:
2
result:
ok good solution
Test #27:
score: 0
Accepted
time: 0ms
memory: 3624kb
input:
331
output:
3
result:
ok good solution
Test #28:
score: 0
Accepted
time: 0ms
memory: 3844kb
input:
269
output:
2
result:
ok good solution
Test #29:
score: 0
Accepted
time: 0ms
memory: 3784kb
input:
797
output:
2
result:
ok good solution
Test #30:
score: 0
Accepted
time: 0ms
memory: 3632kb
input:
997
output:
7
result:
ok good solution
Subtask #2:
score: 1
Accepted
Dependency #1:
100%
Accepted
Test #31:
score: 1
Accepted
time: 0ms
memory: 3600kb
input:
841
output:
2
result:
ok good solution
Test #32:
score: 0
Accepted
time: 0ms
memory: 3628kb
input:
289
output:
3
result:
ok good solution
Test #33:
score: 0
Accepted
time: 0ms
memory: 3840kb
input:
729
output:
2
result:
ok good solution
Test #34:
score: 0
Accepted
time: 0ms
memory: 3540kb
input:
169
output:
2
result:
ok good solution
Test #35:
score: 0
Accepted
time: 0ms
memory: 3568kb
input:
961
output:
3
result:
ok good solution
Test #36:
score: 0
Accepted
time: 0ms
memory: 3576kb
input:
31
output:
3
result:
ok good solution
Test #37:
score: 0
Accepted
time: 0ms
memory: 3636kb
input:
243
output:
2
result:
ok good solution
Test #38:
score: 0
Accepted
time: 0ms
memory: 3516kb
input:
625
output:
2
result:
ok good solution
Test #39:
score: 0
Accepted
time: 0ms
memory: 3628kb
input:
121
output:
2
result:
ok good solution
Test #40:
score: 0
Accepted
time: 0ms
memory: 3844kb
input:
125
output:
2
result:
ok good solution
Test #41:
score: 0
Accepted
time: 0ms
memory: 3768kb
input:
512
output:
-1
result:
ok no solution
Test #42:
score: 0
Accepted
time: 0ms
memory: 3624kb
input:
361
output:
2
result:
ok good solution
Test #43:
score: 0
Accepted
time: 0ms
memory: 3708kb
input:
529
output:
5
result:
ok good solution
Test #44:
score: 0
Accepted
time: 0ms
memory: 3564kb
input:
29
output:
2
result:
ok good solution
Test #45:
score: 0
Accepted
time: 0ms
memory: 3708kb
input:
23
output:
5
result:
ok good solution
Test #46:
score: 0
Accepted
time: 0ms
memory: 3772kb
input:
11
output:
2
result:
ok good solution
Test #47:
score: 0
Accepted
time: 0ms
memory: 3772kb
input:
25
output:
2
result:
ok good solution
Test #48:
score: 0
Accepted
time: 0ms
memory: 3540kb
input:
13
output:
2
result:
ok good solution
Test #49:
score: 0
Accepted
time: 0ms
memory: 3636kb
input:
19
output:
2
result:
ok good solution
Test #50:
score: 0
Accepted
time: 0ms
memory: 3632kb
input:
5
output:
2
result:
ok good solution
Test #51:
score: 0
Accepted
time: 0ms
memory: 3632kb
input:
17
output:
3
result:
ok good solution
Test #52:
score: 0
Accepted
time: 0ms
memory: 3636kb
input:
343
output:
3
result:
ok good solution
Test #53:
score: 0
Accepted
time: 0ms
memory: 3712kb
input:
81
output:
2
result:
ok good solution
Test #54:
score: 0
Accepted
time: 0ms
memory: 3500kb
input:
27
output:
2
result:
ok good solution
Test #55:
score: 0
Accepted
time: 0ms
memory: 3572kb
input:
256
output:
-1
result:
ok no solution
Test #56:
score: 0
Accepted
time: 0ms
memory: 3776kb
input:
49
output:
3
result:
ok good solution
Test #57:
score: 0
Accepted
time: 0ms
memory: 3636kb
input:
9
output:
2
result:
ok good solution
Test #58:
score: 0
Accepted
time: 0ms
memory: 3556kb
input:
3
output:
2
result:
ok good solution
Test #59:
score: 0
Accepted
time: 0ms
memory: 3564kb
input:
7
output:
3
result:
ok good solution
Test #60:
score: 0
Accepted
time: 0ms
memory: 3464kb
input:
128
output:
-1
result:
ok no solution
Subtask #3:
score: 1
Accepted
Dependency #2:
100%
Accepted
Test #61:
score: 1
Accepted
time: 0ms
memory: 3640kb
input:
578
output:
3
result:
ok good solution
Test #62:
score: 0
Accepted
time: 0ms
memory: 3544kb
input:
686
output:
3
result:
ok good solution
Test #63:
score: 0
Accepted
time: 0ms
memory: 3776kb
input:
242
output:
7
result:
ok good solution
Test #64:
score: 0
Accepted
time: 0ms
memory: 3640kb
input:
722
output:
3
result:
ok good solution
Test #65:
score: 0
Accepted
time: 0ms
memory: 3576kb
input:
236
output:
-1
result:
ok no solution
Test #66:
score: 0
Accepted
time: 0ms
memory: 3632kb
input:
486
output:
5
result:
ok good solution
Test #67:
score: 0
Accepted
time: 0ms
memory: 3776kb
input:
250
output:
3
result:
ok good solution
Test #68:
score: 0
Accepted
time: 0ms
memory: 3584kb
input:
98
output:
3
result:
ok good solution
Test #69:
score: 0
Accepted
time: 0ms
memory: 3704kb
input:
162
output:
5
result:
ok good solution
Test #70:
score: 0
Accepted
time: 0ms
memory: 3712kb
input:
770
output:
-1
result:
ok no solution
Test #71:
score: 0
Accepted
time: 0ms
memory: 3844kb
input:
14
output:
3
result:
ok good solution
Test #72:
score: 0
Accepted
time: 0ms
memory: 3544kb
input:
54
output:
5
result:
ok good solution
Test #73:
score: 0
Accepted
time: 0ms
memory: 3588kb
input:
22
output:
7
result:
ok good solution
Test #74:
score: 0
Accepted
time: 0ms
memory: 3696kb
input:
512
output:
-1
result:
ok no solution
Test #75:
score: 0
Accepted
time: 0ms
memory: 3616kb
input:
284
output:
-1
result:
ok no solution
Test #76:
score: 0
Accepted
time: 0ms
memory: 3636kb
input:
50
output:
3
result:
ok good solution
Test #77:
score: 0
Accepted
time: 0ms
memory: 3772kb
input:
34
output:
3
result:
ok good solution
Test #78:
score: 0
Accepted
time: 0ms
memory: 3788kb
input:
38
output:
3
result:
ok good solution
Test #79:
score: 0
Accepted
time: 0ms
memory: 3848kb
input:
338
output:
7
result:
ok good solution
Test #80:
score: 0
Accepted
time: 0ms
memory: 3624kb
input:
37
output:
2
result:
ok good solution
Test #81:
score: 0
Accepted
time: 0ms
memory: 3776kb
input:
10
output:
3
result:
ok good solution
Test #82:
score: 0
Accepted
time: 0ms
memory: 3636kb
input:
26
output:
7
result:
ok good solution
Test #83:
score: 0
Accepted
time: 0ms
memory: 3620kb
input:
256
output:
-1
result:
ok no solution
Test #84:
score: 0
Accepted
time: 1ms
memory: 3704kb
input:
18
output:
5
result:
ok good solution
Test #85:
score: 0
Accepted
time: 0ms
memory: 3708kb
input:
881
output:
3
result:
ok good solution
Test #86:
score: 0
Accepted
time: 0ms
memory: 3464kb
input:
128
output:
-1
result:
ok no solution
Test #87:
score: 0
Accepted
time: 0ms
memory: 3616kb
input:
64
output:
-1
result:
ok no solution
Test #88:
score: 0
Accepted
time: 0ms
memory: 3704kb
input:
32
output:
-1
result:
ok no solution
Test #89:
score: 0
Accepted
time: 0ms
memory: 3620kb
input:
6
output:
5
result:
ok good solution
Test #90:
score: 0
Accepted
time: 0ms
memory: 3628kb
input:
257
output:
3
result:
ok good solution
Subtask #4:
score: 1
Accepted
Dependency #1:
100%
Accepted
Test #91:
score: 1
Accepted
time: 0ms
memory: 3780kb
input:
182233
output:
5
result:
ok good solution
Test #92:
score: 0
Accepted
time: 0ms
memory: 3628kb
input:
28771
output:
2
result:
ok good solution
Test #93:
score: 0
Accepted
time: 0ms
memory: 3600kb
input:
579239
output:
11
result:
ok good solution
Test #94:
score: 0
Accepted
time: 0ms
memory: 3536kb
input:
724747
output:
7
result:
ok good solution
Test #95:
score: 0
Accepted
time: 0ms
memory: 3624kb
input:
143513
output:
3
result:
ok good solution
Test #96:
score: 0
Accepted
time: 0ms
memory: 3628kb
input:
695509
output:
2
result:
ok good solution
Test #97:
score: 0
Accepted
time: 0ms
memory: 3636kb
input:
999217
output:
5
result:
ok good solution
Test #98:
score: 0
Accepted
time: 0ms
memory: 3624kb
input:
888161
output:
3
result:
ok good solution
Test #99:
score: 0
Accepted
time: 0ms
memory: 3788kb
input:
234287
output:
5
result:
ok good solution
Test #100:
score: 0
Accepted
time: 0ms
memory: 3780kb
input:
746483
output:
2
result:
ok good solution
Test #101:
score: 0
Accepted
time: 0ms
memory: 3708kb
input:
985003
output:
3
result:
ok good solution
Test #102:
score: 0
Accepted
time: 0ms
memory: 3568kb
input:
786959
output:
17
result:
ok good solution
Test #103:
score: 0
Accepted
time: 0ms
memory: 3596kb
input:
1097
output:
3
result:
ok good solution
Test #104:
score: 0
Accepted
time: 0ms
memory: 3544kb
input:
105527
output:
5
result:
ok good solution
Test #105:
score: 0
Accepted
time: 0ms
memory: 3704kb
input:
812519
output:
7
result:
ok good solution
Test #106:
score: 0
Accepted
time: 0ms
memory: 3596kb
input:
161599
output:
6
result:
ok good solution
Test #107:
score: 0
Accepted
time: 0ms
memory: 3712kb
input:
645131
output:
2
result:
ok good solution
Test #108:
score: 0
Accepted
time: 0ms
memory: 3624kb
input:
63397
output:
2
result:
ok good solution
Test #109:
score: 0
Accepted
time: 0ms
memory: 3568kb
input:
244429
output:
6
result:
ok good solution
Test #110:
score: 0
Accepted
time: 0ms
memory: 3568kb
input:
911453
output:
2
result:
ok good solution
Test #111:
score: 0
Accepted
time: 0ms
memory: 3512kb
input:
340477
output:
2
result:
ok good solution
Test #112:
score: 0
Accepted
time: 0ms
memory: 3596kb
input:
28351
output:
6
result:
ok good solution
Test #113:
score: 0
Accepted
time: 0ms
memory: 3568kb
input:
414277
output:
2
result:
ok good solution
Test #114:
score: 0
Accepted
time: 0ms
memory: 3644kb
input:
411923
output:
2
result:
ok good solution
Test #115:
score: 0
Accepted
time: 0ms
memory: 3776kb
input:
986281
output:
19
result:
ok good solution
Test #116:
score: 0
Accepted
time: 0ms
memory: 3596kb
input:
882047
output:
5
result:
ok good solution
Test #117:
score: 0
Accepted
time: 0ms
memory: 3540kb
input:
323009
output:
3
result:
ok good solution
Test #118:
score: 0
Accepted
time: 0ms
memory: 3848kb
input:
577153
output:
5
result:
ok good solution
Test #119:
score: 0
Accepted
time: 0ms
memory: 3624kb
input:
42281
output:
11
result:
ok good solution
Test #120:
score: 0
Accepted
time: 0ms
memory: 3628kb
input:
601823
output:
5
result:
ok good solution
Subtask #5:
score: 1
Accepted
Dependency #2:
100%
Accepted
Dependency #4:
100%
Accepted
Test #121:
score: 1
Accepted
time: 0ms
memory: 3632kb
input:
531441
output:
2
result:
ok good solution
Test #122:
score: 0
Accepted
time: 0ms
memory: 3772kb
input:
703921
output:
11
result:
ok good solution
Test #123:
score: 0
Accepted
time: 0ms
memory: 3788kb
input:
253009
output:
5
result:
ok good solution
Test #124:
score: 0
Accepted
time: 0ms
memory: 3600kb
input:
229441
output:
13
result:
ok good solution
Test #125:
score: 0
Accepted
time: 0ms
memory: 3788kb
input:
22801
output:
6
result:
ok good solution
Test #126:
score: 0
Accepted
time: 0ms
memory: 3544kb
input:
160801
output:
3
result:
ok good solution
Test #127:
score: 0
Accepted
time: 0ms
memory: 3772kb
input:
477481
output:
3
result:
ok good solution
Test #128:
score: 0
Accepted
time: 0ms
memory: 3592kb
input:
177147
output:
2
result:
ok good solution
Test #129:
score: 0
Accepted
time: 0ms
memory: 3848kb
input:
120409
output:
2
result:
ok good solution
Test #130:
score: 0
Accepted
time: 0ms
memory: 3772kb
input:
185761
output:
7
result:
ok good solution
Test #131:
score: 0
Accepted
time: 0ms
memory: 3848kb
input:
357911
output:
7
result:
ok good solution
Test #132:
score: 0
Accepted
time: 0ms
memory: 3596kb
input:
358801
output:
7
result:
ok good solution
Test #133:
score: 0
Accepted
time: 0ms
memory: 3776kb
input:
143641
output:
2
result:
ok good solution
Test #134:
score: 0
Accepted
time: 0ms
memory: 3596kb
input:
727609
output:
2
result:
ok good solution
Test #135:
score: 0
Accepted
time: 0ms
memory: 3512kb
input:
192721
output:
15
result:
ok good solution
Test #136:
score: 0
Accepted
time: 0ms
memory: 3596kb
input:
201601
output:
3
result:
ok good solution
Test #137:
score: 0
Accepted
time: 0ms
memory: 3708kb
input:
310249
output:
2
result:
ok good solution
Test #138:
score: 0
Accepted
time: 0ms
memory: 3516kb
input:
124609
output:
3
result:
ok good solution
Test #139:
score: 0
Accepted
time: 0ms
memory: 3624kb
input:
52441
output:
6
result:
ok good solution
Test #140:
score: 0
Accepted
time: 0ms
memory: 3632kb
input:
299209
output:
2
result:
ok good solution
Test #141:
score: 0
Accepted
time: 0ms
memory: 3840kb
input:
524288
output:
-1
result:
ok no solution
Test #142:
score: 0
Accepted
time: 0ms
memory: 3600kb
input:
564001
output:
3
result:
ok good solution
Test #143:
score: 0
Accepted
time: 0ms
memory: 3776kb
input:
704969
output:
3
result:
ok good solution
Test #144:
score: 0
Accepted
time: 0ms
memory: 3708kb
input:
58081
output:
7
result:
ok good solution
Test #145:
score: 0
Accepted
time: 0ms
memory: 3708kb
input:
375769
output:
2
result:
ok good solution
Test #146:
score: 0
Accepted
time: 0ms
memory: 3588kb
input:
853
output:
2
result:
ok good solution
Test #147:
score: 0
Accepted
time: 0ms
memory: 3532kb
input:
37249
output:
5
result:
ok good solution
Test #148:
score: 0
Accepted
time: 0ms
memory: 3784kb
input:
389017
output:
5
result:
ok good solution
Test #149:
score: 0
Accepted
time: 0ms
memory: 3620kb
input:
516961
output:
11
result:
ok good solution
Test #150:
score: 0
Accepted
time: 0ms
memory: 3792kb
input:
677329
output:
3
result:
ok good solution
Subtask #6:
score: 1
Accepted
Dependency #3:
100%
Accepted
Dependency #5:
100%
Accepted
Test #151:
score: 1
Accepted
time: 0ms
memory: 3600kb
input:
334562
output:
21
result:
ok good solution
Test #152:
score: 0
Accepted
time: 0ms
memory: 3848kb
input:
138338
output:
5
result:
ok good solution
Test #153:
score: 0
Accepted
time: 0ms
memory: 3512kb
input:
37538
output:
3
result:
ok good solution
Test #154:
score: 0
Accepted
time: 0ms
memory: 3708kb
input:
144722
output:
3
result:
ok good solution
Test #155:
score: 0
Accepted
time: 0ms
memory: 3844kb
input:
938250
output:
-1
result:
ok no solution
Test #156:
score: 0
Accepted
time: 0ms
memory: 3544kb
input:
722402
output:
7
result:
ok good solution
Test #157:
score: 0
Accepted
time: 0ms
memory: 3596kb
input:
278258
output:
5
result:
ok good solution
Test #158:
score: 0
Accepted
time: 0ms
memory: 3712kb
input:
826898
output:
11
result:
ok good solution
Test #159:
score: 0
Accepted
time: 0ms
memory: 3628kb
input:
287282
output:
3
result:
ok good solution
Test #160:
score: 0
Accepted
time: 0ms
memory: 3708kb
input:
697837
output:
-1
result:
ok no solution
Test #161:
score: 0
Accepted
time: 1ms
memory: 3640kb
input:
108578
output:
3
result:
ok good solution
Test #162:
score: 0
Accepted
time: 0ms
memory: 3544kb
input:
354482
output:
23
result:
ok good solution
Test #163:
score: 0
Accepted
time: 0ms
memory: 3636kb
input:
547058
output:
5
result:
ok good solution
Test #164:
score: 0
Accepted
time: 0ms
memory: 3636kb
input:
1286
output:
11
result:
ok good solution
Test #165:
score: 0
Accepted
time: 0ms
memory: 3540kb
input:
247417
output:
-1
result:
ok no solution
Test #166:
score: 0
Accepted
time: 0ms
memory: 3624kb
input:
293378
output:
5
result:
ok good solution
Test #167:
score: 0
Accepted
time: 0ms
memory: 3708kb
input:
227138
output:
15
result:
ok good solution
Test #168:
score: 0
Accepted
time: 0ms
memory: 3564kb
input:
736898
output:
3
result:
ok good solution
Test #169:
score: 0
Accepted
time: 0ms
memory: 3512kb
input:
954962
output:
3
result:
ok good solution
Test #170:
score: 0
Accepted
time: 0ms
memory: 3512kb
input:
535022
output:
3
result:
ok good solution
Test #171:
score: 0
Accepted
time: 0ms
memory: 3708kb
input:
49298
output:
5
result:
ok good solution
Test #172:
score: 0
Accepted
time: 0ms
memory: 3632kb
input:
171698
output:
3
result:
ok good solution
Test #173:
score: 0
Accepted
time: 0ms
memory: 3640kb
input:
717602
output:
7
result:
ok good solution
Test #174:
score: 0
Accepted
time: 0ms
memory: 3500kb
input:
482162
output:
7
result:
ok good solution
Test #175:
score: 0
Accepted
time: 0ms
memory: 3624kb
input:
313737
output:
-1
result:
ok no solution
Test #176:
score: 0
Accepted
time: 0ms
memory: 3592kb
input:
23762
output:
11
result:
ok good solution
Test #177:
score: 0
Accepted
time: 0ms
memory: 3628kb
input:
674
output:
15
result:
ok good solution
Test #178:
score: 0
Accepted
time: 0ms
memory: 3632kb
input:
157922
output:
3
result:
ok good solution
Test #179:
score: 0
Accepted
time: 0ms
memory: 3568kb
input:
585362
output:
13
result:
ok good solution
Test #180:
score: 0
Accepted
time: 0ms
memory: 3696kb
input:
391017
output:
-1
result:
ok no solution
Subtask #7:
score: 1
Accepted
Dependency #4:
100%
Accepted
Test #181:
score: 1
Accepted
time: 0ms
memory: 3512kb
input:
842797909
output:
2
result:
ok good solution
Test #182:
score: 0
Accepted
time: 0ms
memory: 3624kb
input:
662460749
output:
2
result:
ok good solution
Test #183:
score: 0
Accepted
time: 0ms
memory: 3512kb
input:
583578713
output:
3
result:
ok good solution
Test #184:
score: 0
Accepted
time: 0ms
memory: 3776kb
input:
714745777
output:
19
result:
ok good solution
Test #185:
score: 0
Accepted
time: 0ms
memory: 3848kb
input:
626528689
output:
7
result:
ok good solution
Test #186:
score: 0
Accepted
time: 0ms
memory: 3772kb
input:
848747719
output:
3
result:
ok good solution
Test #187:
score: 0
Accepted
time: 0ms
memory: 3624kb
input:
780868019
output:
2
result:
ok good solution
Test #188:
score: 0
Accepted
time: 0ms
memory: 3544kb
input:
295695817
output:
5
result:
ok good solution
Test #189:
score: 0
Accepted
time: 0ms
memory: 3628kb
input:
950964661
output:
6
result:
ok good solution
Test #190:
score: 0
Accepted
time: 0ms
memory: 3540kb
input:
219526067
output:
2
result:
ok good solution
Test #191:
score: 0
Accepted
time: 0ms
memory: 3516kb
input:
763440683
output:
2
result:
ok good solution
Test #192:
score: 0
Accepted
time: 0ms
memory: 3644kb
input:
744457559
output:
43
result:
ok good solution
Test #193:
score: 0
Accepted
time: 0ms
memory: 3596kb
input:
117979097
output:
3
result:
ok good solution
Test #194:
score: 0
Accepted
time: 0ms
memory: 3516kb
input:
910461493
output:
5
result:
ok good solution
Test #195:
score: 0
Accepted
time: 0ms
memory: 3784kb
input:
796412147
output:
2
result:
ok good solution
Test #196:
score: 0
Accepted
time: 0ms
memory: 3780kb
input:
221019493
output:
2
result:
ok good solution
Test #197:
score: 0
Accepted
time: 0ms
memory: 3848kb
input:
237830497
output:
10
result:
ok good solution
Test #198:
score: 0
Accepted
time: 0ms
memory: 3588kb
input:
209079863
output:
5
result:
ok good solution
Test #199:
score: 0
Accepted
time: 0ms
memory: 3568kb
input:
808345841
output:
3
result:
ok good solution
Test #200:
score: 0
Accepted
time: 0ms
memory: 3844kb
input:
100217503
output:
3
result:
ok good solution
Test #201:
score: 0
Accepted
time: 0ms
memory: 3628kb
input:
99546341
output:
2
result:
ok good solution
Test #202:
score: 0
Accepted
time: 0ms
memory: 3772kb
input:
811108069
output:
6
result:
ok good solution
Test #203:
score: 0
Accepted
time: 0ms
memory: 3708kb
input:
121875503
output:
5
result:
ok good solution
Test #204:
score: 0
Accepted
time: 0ms
memory: 3620kb
input:
932569537
output:
10
result:
ok good solution
Test #205:
score: 0
Accepted
time: 0ms
memory: 3780kb
input:
598983901
output:
6
result:
ok good solution
Test #206:
score: 0
Accepted
time: 0ms
memory: 3776kb
input:
54645551
output:
7
result:
ok good solution
Test #207:
score: 0
Accepted
time: 0ms
memory: 3624kb
input:
22252519
output:
3
result:
ok good solution
Test #208:
score: 0
Accepted
time: 1ms
memory: 3584kb
input:
666436031
output:
14
result:
ok good solution
Test #209:
score: 0
Accepted
time: 0ms
memory: 3780kb
input:
900871603
output:
2
result:
ok good solution
Test #210:
score: 0
Accepted
time: 0ms
memory: 3584kb
input:
561111223
output:
43
result:
ok good solution
Subtask #8:
score: 1
Accepted
Dependency #5:
100%
Accepted
Dependency #7:
100%
Accepted
Test #211:
score: 1
Accepted
time: 0ms
memory: 3584kb
input:
65983129
output:
2
result:
ok good solution
Test #212:
score: 0
Accepted
time: 0ms
memory: 3788kb
input:
29626249
output:
2
result:
ok good solution
Test #213:
score: 0
Accepted
time: 0ms
memory: 3620kb
input:
25210441
output:
3
result:
ok good solution
Test #214:
score: 0
Accepted
time: 0ms
memory: 3776kb
input:
632673409
output:
10
result:
ok good solution
Test #215:
score: 0
Accepted
time: 0ms
memory: 3704kb
input:
150528361
output:
2
result:
ok good solution
Test #216:
score: 0
Accepted
time: 0ms
memory: 3628kb
input:
68417929
output:
21
result:
ok good solution
Test #217:
score: 0
Accepted
time: 0ms
memory: 3600kb
input:
106357969
output:
3
result:
ok good solution
Test #218:
score: 0
Accepted
time: 0ms
memory: 3588kb
input:
4068289
output:
5
result:
ok good solution
Test #219:
score: 0
Accepted
time: 0ms
memory: 3784kb
input:
43309561
output:
14
result:
ok good solution
Test #220:
score: 0
Accepted
time: 0ms
memory: 3512kb
input:
668170801
output:
7
result:
ok good solution
Test #221:
score: 0
Accepted
time: 0ms
memory: 3632kb
input:
339038569
output:
2
result:
ok good solution
Test #222:
score: 0
Accepted
time: 0ms
memory: 3624kb
input:
522625321
output:
2
result:
ok good solution
Test #223:
score: 0
Accepted
time: 0ms
memory: 3544kb
input:
127938721
output:
3
result:
ok good solution
Test #224:
score: 0
Accepted
time: 0ms
memory: 3620kb
input:
41306329
output:
3
result:
ok good solution
Test #225:
score: 0
Accepted
time: 0ms
memory: 3804kb
input:
259564321
output:
7
result:
ok good solution
Test #226:
score: 0
Accepted
time: 0ms
memory: 3512kb
input:
13997521
output:
7
result:
ok good solution
Test #227:
score: 0
Accepted
time: 0ms
memory: 3600kb
input:
400920529
output:
3
result:
ok good solution
Test #228:
score: 0
Accepted
time: 0ms
memory: 3632kb
input:
119880601
output:
2
result:
ok good solution
Test #229:
score: 0
Accepted
time: 0ms
memory: 3576kb
input:
383493889
output:
5
result:
ok good solution
Test #230:
score: 0
Accepted
time: 0ms
memory: 3848kb
input:
122257249
output:
3
result:
ok good solution
Test #231:
score: 0
Accepted
time: 0ms
memory: 3712kb
input:
633579241
output:
3
result:
ok good solution
Test #232:
score: 0
Accepted
time: 0ms
memory: 3620kb
input:
53743561
output:
2
result:
ok good solution
Test #233:
score: 0
Accepted
time: 0ms
memory: 3640kb
input:
481231969
output:
7
result:
ok good solution
Test #234:
score: 0
Accepted
time: 0ms
memory: 3708kb
input:
462379009
output:
5
result:
ok good solution
Test #235:
score: 0
Accepted
time: 0ms
memory: 3640kb
input:
1957201
output:
13
result:
ok good solution
Test #236:
score: 0
Accepted
time: 0ms
memory: 3772kb
input:
196308121
output:
2
result:
ok good solution
Test #237:
score: 0
Accepted
time: 0ms
memory: 3596kb
input:
300017041
output:
3
result:
ok good solution
Test #238:
score: 0
Accepted
time: 0ms
memory: 3640kb
input:
414244609
output:
5
result:
ok good solution
Test #239:
score: 0
Accepted
time: 0ms
memory: 3704kb
input:
533411731
output:
3
result:
ok good solution
Test #240:
score: 0
Accepted
time: 0ms
memory: 3704kb
input:
529138009
output:
2
result:
ok good solution
Subtask #9:
score: 1
Accepted
Dependency #6:
100%
Accepted
Dependency #8:
100%
Accepted
Test #241:
score: 1
Accepted
time: 0ms
memory: 3624kb
input:
367367618
output:
3
result:
ok good solution
Test #242:
score: 0
Accepted
time: 0ms
memory: 3772kb
input:
489657218
output:
5
result:
ok good solution
Test #243:
score: 0
Accepted
time: 0ms
memory: 3628kb
input:
499469618
output:
5
result:
ok good solution
Test #244:
score: 0
Accepted
time: 0ms
memory: 3788kb
input:
24907682
output:
17
result:
ok good solution
Test #245:
score: 0
Accepted
time: 0ms
memory: 3704kb
input:
490448845
output:
-1
result:
ok no solution
Test #246:
score: 0
Accepted
time: 0ms
memory: 3644kb
input:
406068002
output:
3
result:
ok good solution
Test #247:
score: 0
Accepted
time: 0ms
memory: 3540kb
input:
219804478
output:
13
result:
ok good solution
Test #248:
score: 0
Accepted
time: 0ms
memory: 3588kb
input:
405726098
output:
5
result:
ok good solution
Test #249:
score: 0
Accepted
time: 0ms
memory: 3512kb
input:
474381602
output:
15
result:
ok good solution
Test #250:
score: 0
Accepted
time: 0ms
memory: 3600kb
input:
246521126
output:
-1
result:
ok no solution
Test #251:
score: 0
Accepted
time: 0ms
memory: 3516kb
input:
111930722
output:
7
result:
ok good solution
Test #252:
score: 0
Accepted
time: 0ms
memory: 3584kb
input:
472904258
output:
3
result:
ok good solution
Test #253:
score: 0
Accepted
time: 0ms
memory: 3772kb
input:
543642338
output:
5
result:
ok good solution
Test #254:
score: 0
Accepted
time: 0ms
memory: 3564kb
input:
610891058
output:
3
result:
ok good solution
Test #255:
score: 0
Accepted
time: 0ms
memory: 3712kb
input:
489880646
output:
-1
result:
ok no solution
Test #256:
score: 0
Accepted
time: 0ms
memory: 3708kb
input:
190086002
output:
3
result:
ok good solution
Test #257:
score: 0
Accepted
time: 0ms
memory: 3512kb
input:
541007618
output:
3
result:
ok good solution
Test #258:
score: 0
Accepted
time: 0ms
memory: 3776kb
input:
945168242
output:
3
result:
ok good solution
Test #259:
score: 0
Accepted
time: 0ms
memory: 3628kb
input:
577116338
output:
3
result:
ok good solution
Test #260:
score: 0
Accepted
time: 0ms
memory: 3768kb
input:
135176072
output:
-1
result:
ok no solution
Test #261:
score: 0
Accepted
time: 0ms
memory: 3568kb
input:
7136642
output:
3
result:
ok good solution
Test #262:
score: 0
Accepted
time: 0ms
memory: 3632kb
input:
690953138
output:
5
result:
ok good solution
Test #263:
score: 0
Accepted
time: 1ms
memory: 3632kb
input:
15691202
output:
3
result:
ok good solution
Test #264:
score: 0
Accepted
time: 0ms
memory: 3636kb
input:
8661122
output:
3
result:
ok good solution
Test #265:
score: 0
Accepted
time: 0ms
memory: 3600kb
input:
969491343
output:
-1
result:
ok no solution
Test #266:
score: 0
Accepted
time: 0ms
memory: 3584kb
input:
172273922
output:
3
result:
ok good solution
Test #267:
score: 0
Accepted
time: 0ms
memory: 3500kb
input:
40374098
output:
3
result:
ok good solution
Test #268:
score: 0
Accepted
time: 0ms
memory: 3776kb
input:
111213698
output:
3
result:
ok good solution
Test #269:
score: 0
Accepted
time: 0ms
memory: 3644kb
input:
535495538
output:
3
result:
ok good solution
Test #270:
score: 0
Accepted
time: 0ms
memory: 3848kb
input:
715962635
output:
-1
result:
ok no solution
Subtask #10:
score: 1
Accepted
Dependency #9:
100%
Accepted
Test #271:
score: 1
Accepted
time: 1ms
memory: 3784kb
input:
2670238111993922
output:
31
result:
ok good solution
Test #272:
score: 0
Accepted
time: 1ms
memory: 3640kb
input:
1412768792638898
output:
3
result:
ok good solution
Test #273:
score: 0
Accepted
time: 1ms
memory: 3708kb
input:
3415757055522338
output:
5
result:
ok good solution
Test #274:
score: 0
Accepted
time: 1ms
memory: 3708kb
input:
609849802971602
output:
7
result:
ok good solution
Test #275:
score: 0
Accepted
time: 0ms
memory: 3436kb
input:
2470756780761188
output:
-1
result:
ok no solution
Test #276:
score: 0
Accepted
time: 1ms
memory: 3624kb
input:
4540448632181282
output:
33
result:
ok good solution
Test #277:
score: 0
Accepted
time: 1ms
memory: 3632kb
input:
2191832922455282
output:
7
result:
ok good solution
Test #278:
score: 0
Accepted
time: 1ms
memory: 3844kb
input:
7397519340340082
output:
11
result:
ok good solution
Test #279:
score: 0
Accepted
time: 1ms
memory: 3600kb
input:
2243715766515218
output:
5
result:
ok good solution
Test #280:
score: 0
Accepted
time: 0ms
memory: 3768kb
input:
2212319589622572
output:
-1
result:
ok no solution
Test #281:
score: 0
Accepted
time: 0ms
memory: 3784kb
input:
2296554929310098
output:
3
result:
ok good solution
Test #282:
score: 0
Accepted
time: 1ms
memory: 3772kb
input:
8659147610906018
output:
3
result:
ok good solution
Test #283:
score: 0
Accepted
time: 1ms
memory: 3844kb
input:
258429609036722
output:
15
result:
ok good solution
Test #284:
score: 0
Accepted
time: 1ms
memory: 3784kb
input:
7638862917598802
output:
11
result:
ok good solution
Test #285:
score: 0
Accepted
time: 0ms
memory: 3848kb
input:
8275064231348893
output:
-1
result:
ok no solution
Test #286:
score: 0
Accepted
time: 1ms
memory: 3628kb
input:
4531313037563138
output:
7
result:
ok good solution
Test #287:
score: 0
Accepted
time: 1ms
memory: 3588kb
input:
3403611272369618
output:
7
result:
ok good solution
Test #288:
score: 0
Accepted
time: 1ms
memory: 3568kb
input:
2379814327381922
output:
7
result:
ok good solution
Test #289:
score: 0
Accepted
time: 1ms
memory: 3776kb
input:
9150661439796962
output:
7
result:
ok good solution
Test #290:
score: 0
Accepted
time: 0ms
memory: 3596kb
input:
4663789583183194
output:
-1
result:
ok no solution
Test #291:
score: 0
Accepted
time: 0ms
memory: 3696kb
input:
115014794498
output:
5
result:
ok good solution
Test #292:
score: 0
Accepted
time: 1ms
memory: 3632kb
input:
1011914274734162
output:
3
result:
ok good solution
Test #293:
score: 0
Accepted
time: 1ms
memory: 3784kb
input:
6273881517086402
output:
3
result:
ok good solution
Test #294:
score: 0
Accepted
time: 0ms
memory: 3556kb
input:
8837771746078802
output:
3
result:
ok good solution
Test #295:
score: 0
Accepted
time: 0ms
memory: 3700kb
input:
2748517911524984
output:
-1
result:
ok no solution
Test #296:
score: 0
Accepted
time: 0ms
memory: 3544kb
input:
153116285124002
output:
19
result:
ok good solution
Test #297:
score: 0
Accepted
time: 1ms
memory: 3596kb
input:
676295415993698
output:
3
result:
ok good solution
Test #298:
score: 0
Accepted
time: 0ms
memory: 3772kb
input:
4859597134764338
output:
5
result:
ok good solution
Test #299:
score: 0
Accepted
time: 1ms
memory: 3776kb
input:
70865774435618
output:
11
result:
ok good solution
Test #300:
score: 0
Accepted
time: 0ms
memory: 3776kb
input:
1639197169
output:
10
result:
ok good solution