QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#381901#144. Primitive root / 原根Isrothy10 ✓1ms3848kbC++237.1kb2024-04-07 21:37:062024-04-07 21:37:08

Judging History

你现在查看的是最新测评结果

  • [2024-04-07 21:37:08]
  • 评测
  • 测评结果:10
  • 用时:1ms
  • 内存:3848kb
  • [2024-04-07 21:37:06]
  • 提交

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