QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#103742#6400. Game: CelestehitonanodeTL 2032ms681028kbC++1714.2kb2023-05-07 14:09:452023-05-07 14:09:47

Judging History

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

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-05-07 14:09:47]
  • 评测
  • 测评结果:TL
  • 用时:2032ms
  • 内存:681028kb
  • [2023-05-07 14:09:45]
  • 提交

answer

#include <algorithm>
#include <array>
#include <bitset>
#include <cassert>
#include <chrono>
#include <cmath>
#include <complex>
#include <deque>
#include <forward_list>
#include <fstream>
#include <functional>
#include <iomanip>
#include <ios>
#include <iostream>
#include <limits>
#include <list>
#include <map>
#include <numeric>
#include <queue>
#include <random>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <tuple>
#include <type_traits>
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <vector>
using namespace std;
using lint = long long;
using pint = pair<int, int>;
using plint = pair<lint, lint>;
struct fast_ios { fast_ios(){ cin.tie(nullptr), ios::sync_with_stdio(false), cout << fixed << setprecision(20); }; } fast_ios_;
#define ALL(x) (x).begin(), (x).end()
#define FOR(i, begin, end) for(int i=(begin),i##_end_=(end);i<i##_end_;i++)
#define IFOR(i, begin, end) for(int i=(end)-1,i##_begin_=(begin);i>=i##_begin_;i--)
#define REP(i, n) FOR(i,0,n)
#define IREP(i, n) IFOR(i,0,n)
template <typename T, typename V>
void ndarray(vector<T>& vec, const V& val, int len) { vec.assign(len, val); }
template <typename T, typename V, typename... Args> void ndarray(vector<T>& vec, const V& val, int len, Args... args) { vec.resize(len), for_each(begin(vec), end(vec), [&](T& v) { ndarray(v, val, args...); }); }
template <typename T> bool chmax(T &m, const T q) { return m < q ? (m = q, true) : false; }
template <typename T> bool chmin(T &m, const T q) { return m > q ? (m = q, true) : false; }
const std::vector<std::pair<int, int>> grid_dxs{{1, 0}, {-1, 0}, {0, 1}, {0, -1}};
int floor_lg(long long x) { return x <= 0 ? -1 : 63 - __builtin_clzll(x); }
template <class T1, class T2> T1 floor_div(T1 num, T2 den) { return (num > 0 ? num / den : -((-num + den - 1) / den)); }
template <class T1, class T2> std::pair<T1, T2> operator+(const std::pair<T1, T2> &l, const std::pair<T1, T2> &r) { return std::make_pair(l.first + r.first, l.second + r.second); }
template <class T1, class T2> std::pair<T1, T2> operator-(const std::pair<T1, T2> &l, const std::pair<T1, T2> &r) { return std::make_pair(l.first - r.first, l.second - r.second); }
template <class T> std::vector<T> sort_unique(std::vector<T> vec) { sort(vec.begin(), vec.end()), vec.erase(unique(vec.begin(), vec.end()), vec.end()); return vec; }
template <class T> int arglb(const std::vector<T> &v, const T &x) { return std::distance(v.begin(), std::lower_bound(v.begin(), v.end(), x)); }
template <class T> int argub(const std::vector<T> &v, const T &x) { return std::distance(v.begin(), std::upper_bound(v.begin(), v.end(), x)); }
template <class IStream, class T> IStream &operator>>(IStream &is, std::vector<T> &vec) { for (auto &v : vec) is >> v; return is; }

template <class OStream, class T> OStream &operator<<(OStream &os, const std::vector<T> &vec);
template <class OStream, class T, size_t sz> OStream &operator<<(OStream &os, const std::array<T, sz> &arr);
template <class OStream, class T, class TH> OStream &operator<<(OStream &os, const std::unordered_set<T, TH> &vec);
template <class OStream, class T, class U> OStream &operator<<(OStream &os, const pair<T, U> &pa);
template <class OStream, class T> OStream &operator<<(OStream &os, const std::deque<T> &vec);
template <class OStream, class T> OStream &operator<<(OStream &os, const std::set<T> &vec);
template <class OStream, class T> OStream &operator<<(OStream &os, const std::multiset<T> &vec);
template <class OStream, class T> OStream &operator<<(OStream &os, const std::unordered_multiset<T> &vec);
template <class OStream, class T, class U> OStream &operator<<(OStream &os, const std::pair<T, U> &pa);
template <class OStream, class TK, class TV> OStream &operator<<(OStream &os, const std::map<TK, TV> &mp);
template <class OStream, class TK, class TV, class TH> OStream &operator<<(OStream &os, const std::unordered_map<TK, TV, TH> &mp);
template <class OStream, class... T> OStream &operator<<(OStream &os, const std::tuple<T...> &tpl);

template <class OStream, class T> OStream &operator<<(OStream &os, const std::vector<T> &vec) { os << '['; for (auto v : vec) os << v << ','; os << ']'; return os; }
template <class OStream, class T, size_t sz> OStream &operator<<(OStream &os, const std::array<T, sz> &arr) { os << '['; for (auto v : arr) os << v << ','; os << ']'; return os; }
template <class... T> std::istream &operator>>(std::istream &is, std::tuple<T...> &tpl) { std::apply([&is](auto &&... args) { ((is >> args), ...);}, tpl); return is; }
template <class OStream, class... T> OStream &operator<<(OStream &os, const std::tuple<T...> &tpl) { os << '('; std::apply([&os](auto &&... args) { ((os << args << ','), ...);}, tpl); return os << ')'; }
template <class OStream, class T, class TH> OStream &operator<<(OStream &os, const std::unordered_set<T, TH> &vec) { os << '{'; for (auto v : vec) os << v << ','; os << '}'; return os; }
template <class OStream, class T> OStream &operator<<(OStream &os, const std::deque<T> &vec) { os << "deq["; for (auto v : vec) os << v << ','; os << ']'; return os; }
template <class OStream, class T> OStream &operator<<(OStream &os, const std::set<T> &vec) { os << '{'; for (auto v : vec) os << v << ','; os << '}'; return os; }
template <class OStream, class T> OStream &operator<<(OStream &os, const std::multiset<T> &vec) { os << '{'; for (auto v : vec) os << v << ','; os << '}'; return os; }
template <class OStream, class T> OStream &operator<<(OStream &os, const std::unordered_multiset<T> &vec) { os << '{'; for (auto v : vec) os << v << ','; os << '}'; return os; }
template <class OStream, class T, class U> OStream &operator<<(OStream &os, const std::pair<T, U> &pa) { return os << '(' << pa.first << ',' << pa.second << ')'; }
template <class OStream, class TK, class TV> OStream &operator<<(OStream &os, const std::map<TK, TV> &mp) { os << '{'; for (auto v : mp) os << v.first << "=>" << v.second << ','; os << '}'; return os; }
template <class OStream, class TK, class TV, class TH> OStream &operator<<(OStream &os, const std::unordered_map<TK, TV, TH> &mp) { os << '{'; for (auto v : mp) os << v.first << "=>" << v.second << ','; os << '}'; return os; }
#ifdef HITONANODE_LOCAL
const string COLOR_RESET = "\033[0m", BRIGHT_GREEN = "\033[1;32m", BRIGHT_RED = "\033[1;31m", BRIGHT_CYAN = "\033[1;36m", NORMAL_CROSSED = "\033[0;9;37m", RED_BACKGROUND = "\033[1;41m", NORMAL_FAINT = "\033[0;2m";
#define dbg(x) std::cerr << BRIGHT_CYAN << #x << COLOR_RESET << " = " << (x) << NORMAL_FAINT << " (L" << __LINE__ << ") " << __FILE__ << COLOR_RESET << std::endl
#define dbgif(cond, x) ((cond) ? std::cerr << BRIGHT_CYAN << #x << COLOR_RESET << " = " << (x) << NORMAL_FAINT << " (L" << __LINE__ << ") " << __FILE__ << COLOR_RESET << std::endl : std::cerr)
#else
#define dbg(x) ((void)0)
#define dbgif(cond, x) ((void)0)
#endif


// Sliding-Window Aggregation based queue
// - `std::queue`-like data structure with monoid operation
// - Each operation is amortized O(1)
// - Verification:
// https://www.hackerrank.com/contests/tsg-live-4-programming-contest/challenges/tsg-live-4-procon-lcm-interval/submissions/code/1317888077
// - Reference:
// https://github.com/NiMiLib/NoshiMochiLibrary/blob/queue_aggregation/lib/data_structure/sequence/queue_aggregation.hpp
template <typename T_VAL, typename T_PROD, T_PROD (*val2prod)(T_VAL), T_PROD (*op)(T_PROD, T_PROD)>
struct swag_queue {
    std::stack<std::pair<T_VAL, T_PROD>, std::vector<std::pair<T_VAL, T_PROD>>> front_stack,
        back_stack;

    swag_queue() {}
    bool empty() const { return front_stack.empty() and back_stack.empty(); }
    int size() const { return front_stack.size() + back_stack.size(); }
    T_PROD fold_all() const {
        if (empty()) {
            exit(1);
            // return ID_;
        } else if (front_stack.empty())
            return back_stack.top().second;
        else if (back_stack.empty())
            return front_stack.top().second;
        else
            return op(front_stack.top().second, back_stack.top().second);
    }
    void push(const T_VAL &x) {
        if (back_stack.empty())
            back_stack.emplace(x, val2prod(x));
        else
            back_stack.emplace(x, op(back_stack.top().second, val2prod(x)));
    }
    const T_VAL &front() {
        if (front_stack.empty()) {
            front_stack.emplace(back_stack.top().first, val2prod(back_stack.top().first));
            back_stack.pop();
            while (!back_stack.empty()) {
                T_VAL t = back_stack.top().first;
                front_stack.emplace(t, op(val2prod(t), front_stack.top().second));
                back_stack.pop();
            }
        }
        return front_stack.top().first;
    }

    T_VAL pop() {
        T_VAL t = front();
        front_stack.pop();
        return t;
    }
};


template <class S, S (*op)(S, S), S (*e)()> struct persistent_segtree {
    struct Root {
        int id;
    };

    explicit persistent_segtree(int n) : persistent_segtree(std::vector<S>(n, e())) {}
    explicit persistent_segtree(const std::vector<S> &v) : _n(int(v.size())) {
        lg = 1;
        while ((1 << lg) < _n) ++lg;
        size = 1 << lg;

        d = std::vector<S>(2 * size, e());
        left = right = std::vector<int>(2 * size, -1);

        for (int i = 0; i < _n; i++) d[size + i] = v[i];
        for (int i = size - 1; i >= 1; i--) {
            left.at(i) = 2 * i;
            right.at(i) = 2 * i + 1;
            d.at(i) = op(d.at(2 * i), d.at(2 * i + 1));
        }
    }


    Root set(const Root &root, const int &p, const S &x) {
        assert(0 <= p && p < _n);

        static std::vector<int> ids;
        if (int(ids.size()) < lg + 1) ids.resize(lg + 1, -1);

        ids.at(lg) = root.id;
        for (int i = lg - 1; i >= 0; --i) {
            ids.at(i) = ((p >> i) & 1) ? right.at(ids.at(i + 1)) : left.at(ids.at(i + 1));
        }

        int copy_cur = d.size();
        d.push_back(x);
        left.push_back(-1);
        right.push_back(-1);

        for (int i = 1; i <= lg; i++) {
            const int par = ids.at(i), cur = ids.at(i - 1);
            const int copy_par = d.size();
            left.push_back(left.at(par) == cur ? copy_cur : left.at(par));
            right.push_back(right.at(par) == cur ? copy_cur : right.at(par));
            d.push_back(op(d.at(left.back()), d.at(right.back())));

            copy_cur = copy_par;
        }

        return Root{copy_cur};
    }

    S prod(const Root &root, const int &l, const int &r) const {
        assert(0 <= l && l <= r && r <= _n);

        auto rec = [&](auto &&self, int i, int lo, int hi) -> S {
            if (r <= lo or hi <= l) return e();
            if (l <= lo and hi <= r) return d.at(i);

            return op(self(self, left.at(i), lo, (lo + hi) / 2), self(self, right.at(i), (lo + hi) / 2, hi));
        };

        return rec(rec, root.id, 0, size);
    }

    S all_prod(const Root &root) const { return d.at(root.id); }

    Root get_root() const { return {1}; }

// private:
    int _n, size, lg;
    std::vector<S> d;
    std::vector<int> left, right;
};

struct rand_int_ {
    using lint = long long;
    std::mt19937 mt;
    rand_int_() : mt(std::chrono::steady_clock::now().time_since_epoch().count()) {}
    lint operator()(lint x) { return this->operator()(0, x); } // [0, x)
    lint operator()(lint l, lint r) {
        std::uniform_int_distribution<lint> d(l, r - 1);
        return d(mt);
    }
} rnd;



using S = pair<int, unsigned long long>;
S op(S l, S r) { return l + r; }
S e() { return {0, 0}; }
persistent_segtree<S, op, e> tree(0);

using swag_val = pair<int, persistent_segtree<S, op, e>::Root>;
swag_val val2prod(swag_val x) { return x; }
swag_val swag_op(swag_val l, swag_val r) {
    int i = l.second.id, j = r.second.id;

    if (tree.d.at(i) == tree.d.at(j)) return r;

    // dbg(make_tuple(l.first, r.first));
    // dbg(make_tuple(i, j, tree.d.at(i), tree.d.at(j)));

    for (int d = 0; d < tree.lg; ++d) {
        if (const int il = tree.left.at(i), jl = tree.left.at(j); tree.d.at(il) != tree.d.at(jl)) {
            i = il;
            j = jl;
        } else {
            i = tree.right.at(i);
            j = tree.right.at(j);
        }
    }

    // dbg(make_tuple(i, j, tree.d.at(i), tree.d.at(j)));
    assert(tree.d.at(i) != tree.d.at(j));

    return tree.d.at(i) > tree.d.at(j) ? l : r;
}

vector<int> solve() {
    int N, L, R;
    cin >> N >> L >> R;
    vector<int> X(N);
    cin >> X;
    vector<int> A(N);
    cin >> A;
    if (N == 1) return A;

    REP(i, N) A.at(i) = N - A.at(i);
    dbg(make_tuple(L, R, X, A));


    tree = persistent_segtree<S, op, e>(N);
    vector<unsigned long long> hash(N);
    for (auto &x : hash) x = rnd(0, 1LL << 60);
    dbg(hash);

    auto root0 = tree.get_root();

    swag_queue<swag_val, swag_val, val2prod, swag_op> swag;

    queue<swag_val> roots;
    roots.emplace(0, tree.set(root0, A.at(0), {1, hash.at(A.at(0))}));

    vector<int> prv(N, -1);

    FOR(i, 1, N) {
        while (roots.size() and X.at(roots.front().first) <= X.at(i) - L) {
            swag.push(roots.front());
            roots.pop();
        }
        while (swag.size() and X.at(swag.front().first) < X.at(i) - R) swag.pop();

        dbg(make_tuple(i, swag.size()));

        if (swag.size()) {
            auto [j, root] = swag.fold_all();
            prv.at(i) = j;
            auto f = tree.prod(root, A.at(i), A.at(i) + 1);
            f.first++;
            f.second += hash.at(A.at(i));
            auto new_root = tree.set(root, A.at(i), f);
            roots.emplace(i, new_root);
        }
    }

    if (prv.back() < 0) return {};

    vector<int> ret;
    for (int cur = N - 1; cur >= 0; cur = prv.at(cur)) ret.push_back(N - A.at(cur));

    sort(ret.rbegin(), ret.rend());
    return ret;
}

int main() {
    int T;
    cin >> T;
    while (T--) {
        auto ret = solve();
        if (ret.empty()) {
            cout << "-1\n";
        } else {
            cout << ret.size() << '\n';
            REP(i, ret.size()) cout << ret.at(i) << (i + 1 == int(ret.size()) ? '\n' : ' ');
        }
    }
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 2ms
memory: 3456kb

input:

2
5 2 3
1 2 3 4 5
5 2 3 1 4
3 1 2
1 4 7
3 3 3

output:

3
5 4 3
-1

result:

ok 3 lines

Test #2:

score: 0
Accepted
time: 353ms
memory: 3876kb

input:

10000
57 8 11
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
11 16 7 7 10 13 9 14 10 1 12 4 8 13 3 20 16 7 16 19 20 8 19 7 16 6 17 13 7 19 17 11 12 17 6 3 7 8 14 2 4 15 5 18 16 7 20 9 1...

output:

7
20 20 19 14 12 11 3
-1
6
6 5 3 2 1 1
-1
185
20 20 20 20 20 20 20 20 19 19 19 19 19 19 19 19 19 19 19 19 18 18 18 18 18 17 17 17 17 17 17 17 17 16 16 16 16 16 16 16 16 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 14 14 14 14 14 14 14 13 13 13 13 13 13 13 13 13 12 12 12 12 12 12 12 12...

result:

ok 16378 lines

Test #3:

score: 0
Accepted
time: 285ms
memory: 3836kb

input:

10000
86 230405 991217
3291 11742 17120 30018 47955 52215 96227 98031 100118 106944 117304 121905 124796 135037 164100 164654 169459 177527 206513 212554 228740 229590 261521 295062 300116 312030 326533 329513 349983 353580 355242 356731 363347 368753 389545 396163 399755 409927 426532 427781 441386...

output:

4
20 19 2 1
4
19 12 6 3
-1
-1
24
20 19 18 18 18 18 18 18 18 18 16 16 16 16 15 15 13 12 11 9 5 4 2 2
-1
2
4 3
3
6 4 2
4
13 12 5 5
3
20 17 5
3
20 8 3
-1
-1
1
1
-1
5
20 20 19 15 14
2
13 12
-1
-1
4
20 20 8 5
-1
-1
-1
6
20 16 16 16 13 9
-1
-1
-1
3
19 17 11
3
19 15 9
-1
-1
-1
-1
-1
-1
2
7 3
3
12 10 9
6
20...

result:

ok 14975 lines

Test #4:

score: 0
Accepted
time: 330ms
memory: 3864kb

input:

10000
101 17 17
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98...

output:

-1
15
10 10 10 10 10 10 9 9 9 9 7 7 6 6 3
-1
44
10 10 10 10 10 10 10 10 10 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 8 8 8 7 6 6 6 6 6 6 6 5 4 3 3 3 3
11
10 10 10 10 10 9 8 7 6 6 2
6
10 10 10 10 8 3
18
10 10 10 10 10 10 8 8 8 8 7 7 7 6 5 3 2 2
-1
-1
1
1
-1
-1
-1
20
10 10 10 10 10 10 10 10 10 9 8 8 8 8 7...

result:

ok 16344 lines

Test #5:

score: 0
Accepted
time: 311ms
memory: 3888kb

input:

10000
18 16 16
1 2 3 4 5 6 7 8 10 11 12 13 14 16 17 18 19 20
2 2 2 1 2 1 1 2 2 2 2 1 2 2 1 2 1 1
403 3 7
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 ...

output:

-1
126
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-1
-1
-1
1
1
-1
-1
10
2 2 2 2 2 2 1 1 1 1...

result:

ok 16420 lines

Test #6:

score: 0
Accepted
time: 327ms
memory: 4004kb

input:

10000
251 1 1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 9...

output:

251
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

result:

ok 16925 lines

Test #7:

score: 0
Accepted
time: 506ms
memory: 65864kb

input:

100
23882 222 481
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 ...

output:

102
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 19...

result:

ok 167 lines

Test #8:

score: 0
Accepted
time: 324ms
memory: 37576kb

input:

100
3789 29850 70419
774 1032 1649 1723 2194 3021 3114 3308 3344 3360 3688 3781 3967 4245 4878 4966 5099 5597 5617 5638 5645 5784 5871 6136 6158 6358 6483 6600 6766 6775 6800 6895 7119 7439 7485 7696 7734 8432 8493 8581 8627 9203 9576 9885 10062 10290 10454 10466 10537 10717 10861 11048 11484 11497 ...

output:

30
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 19 18 3
-1
-1
-1
4
20 20 18 10
-1
6
20 20 20 20 15 9
-1
-1
5
20 20 20 18 4
4
20 20 13 7
-1
4
20 20 19 18
-1
-1
-1
-1
2
16 8
-1
3
20 20 6
8
20 20 20 20 20 20 15 12
-1
-1
-1
17
20 20 20 20 20 20 20 20 20 20 20 20 20 20...

result:

ok 139 lines

Test #9:

score: 0
Accepted
time: 468ms
memory: 38232kb

input:

100
181 1947 1967
17 23 47 53 55 68 84 92 110 147 153 164 191 198 207 209 215 221 255 269 275 302 305 322 324 363 370 373 385 405 407 429 451 458 466 472 478 500 508 544 557 561 564 565 569 587 600 610 617 630 645 659 665 670 674 715 726 744 747 764 769 770 774 782 786 787 794 795 824 852 860 873 87...

output:

-1
-1
-1
12
10 10 10 10 10 10 10 10 10 10 9 4
12
10 10 10 10 10 10 10 10 10 10 5 5
13
10 10 10 10 10 10 10 10 10 10 10 5 4
-1
22
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 5 2
215
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1...

result:

ok 166 lines

Test #10:

score: 0
Accepted
time: 467ms
memory: 40352kb

input:

100
5589 851 904
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 9...

output:

-1
267
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3...

result:

ok 184 lines

Test #11:

score: 0
Accepted
time: 226ms
memory: 61944kb

input:

100
6944 1905 1926
2 3 4 6 7 8 9 10 11 13 15 16 17 18 20 22 23 24 25 29 31 32 33 34 35 39 40 42 43 44 45 46 47 49 51 54 55 57 58 60 61 62 63 64 67 68 69 71 72 74 75 76 78 79 80 81 82 83 84 85 86 90 91 92 94 95 96 98 100 104 105 106 107 108 109 111 112 117 118 119 120 123 125 126 127 128 131 133 134 ...

output:

-1
-1
296
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 ...

result:

ok 118 lines

Test #12:

score: 0
Accepted
time: 702ms
memory: 124004kb

input:

10
93999 762 838
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 9...

output:

124
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 1
2332
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3...

result:

ok 20 lines

Test #13:

score: 0
Accepted
time: 483ms
memory: 359844kb

input:

10
10628 1687 1731
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97...

output:

-1
-1
76
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-1
-1
219
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2...

result:

ok 13 lines

Test #14:

score: 0
Accepted
time: 180ms
memory: 75052kb

input:

3
187063 95635158 95636093
11 507 618 934 1132 2191 3177 3365 3571 3605 4833 4988 5100 6157 6542 7005 7008 7258 7353 7366 7507 9327 10129 10131 10240 11168 11397 12964 13519 14429 14748 15782 16126 16244 16491 17464 17693 18411 19312 19807 19967 20183 21049 21170 21526 21813 22278 22946 23297 23600 ...

output:

-1
-1
-1

result:

ok 3 lines

Test #15:

score: 0
Accepted
time: 506ms
memory: 356048kb

input:

3
109970 343649 521308
4 6 25 27 32 45 53 56 76 81 100 111 115 133 143 145 163 169 173 174 194 199 243 261 299 300 303 311 332 335 341 357 367 368 374 387 392 412 415 422 435 437 442 443 444 454 458 462 466 478 482 486 490 497 499 505 512 521 528 544 549 558 560 574 587 597 620 622 625 643 651 652 6...

output:

3
2 2 1
-1
8
2 2 2 2 2 2 1 1

result:

ok 5 lines

Test #16:

score: 0
Accepted
time: 605ms
memory: 343360kb

input:

3
541782 286 289
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 9...

output:

1895
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1...

result:

ok 5 lines

Test #17:

score: 0
Accepted
time: 1730ms
memory: 380664kb

input:

2
590573 45 48
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 ...

output:

12722
100000 100000 100000 100000 100000 100000 100000 99999 99999 99999 99999 99999 99999 99998 99998 99998 99998 99998 99998 99998 99998 99998 99998 99998 99998 99998 99998 99997 99997 99997 99997 99997 99996 99996 99996 99995 99995 99994 99994 99994 99994 99994 99994 99994 99993 99993 99993 99993...

result:

ok 4 lines

Test #18:

score: 0
Accepted
time: 870ms
memory: 413828kb

input:

2
658290 51 71
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 ...

output:

11109
100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 10...

result:

ok 4 lines

Test #19:

score: 0
Accepted
time: 2032ms
memory: 681028kb

input:

1
1000000 324190 960223
187 199 240 453 559 628 670 753 755 1329 1330 1681 1904 2042 2061 2169 2183 2233 2258 2535 2555 2711 2718 2819 2951 3211 3294 3309 3342 3456 3485 3491 3782 3834 3854 3968 4205 4236 4312 4314 4340 4371 4596 4603 4734 4792 5133 5249 5273 5469 5895 5915 5977 6006 6029 6062 6089 ...

output:

231
1000000 1000000 999999 999999 999999 999999 999999 999997 999997 999992 999992 999992 999992 999991 999989 999987 999987 999985 999985 999983 999982 999981 999981 999978 999976 999975 999975 999973 999970 999969 999969 999969 999968 999968 999965 999963 999962 999960 999960 999959 999957 999952 ...

result:

ok 2 lines

Test #20:

score: 0
Accepted
time: 153ms
memory: 101584kb

input:

1
1000000 87283396 87283923
47 91 155 190 566 594 1076 1200 1393 1419 1433 1460 1928 1971 1980 1984 2044 2240 2269 2289 2524 2630 2644 2655 2718 2724 2937 3196 3321 3352 3354 3387 3430 3480 3553 3589 3837 3853 3868 4307 4374 4404 4486 4512 4521 4715 4776 4810 4962 5060 5067 5081 5153 5313 5330 5409 ...

output:

-1

result:

ok single line: '-1'

Test #21:

score: 0
Accepted
time: 173ms
memory: 102064kb

input:

1
1000000 72210945 72247561
83 183 329 485 537 555 722 867 874 1021 1092 1350 1362 1410 1544 1740 1812 1823 1846 1870 2188 2194 2304 2335 2383 2539 2709 2745 2807 3094 3151 3231 3238 3253 3390 3573 3579 3596 3672 3700 3721 3750 3811 4125 4178 4191 4202 4330 4339 4601 4631 4641 4684 4834 4997 5037 52...

output:

-1

result:

ok single line: '-1'

Test #22:

score: -100
Time Limit Exceeded

input:

1
1000000 7 9
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 9...

output:


result: