QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#607931#9424. Stop the Castle 2ucup-team4435#AC ✓342ms27628kbC++208.5kb2024-10-03 17:09:192024-10-03 17:09:19

Judging History

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

  • [2024-10-03 17:09:19]
  • 评测
  • 测评结果:AC
  • 用时:342ms
  • 内存:27628kb
  • [2024-10-03 17:09:19]
  • 提交

answer

#pragma GCC optimize("Ofast")

#include "bits/stdc++.h"

#define rep(i, n) for (int i = 0; i < (n); ++i)
#define rep1(i, n) for (int i = 1; i < (n); ++i)
#define rep1n(i, n) for (int i = 1; i <= (n); ++i)
#define repr(i, n) for (int i = (n) - 1; i >= 0; --i)
#define pb push_back
#define eb emplace_back
#define all(a) (a).begin(), (a).end()
#define rall(a) (a).rbegin(), (a).rend()
#define each(x, a) for (auto &x : a)
#define ar array
#define vec vector
#define range(i, n) rep(i, n)

using namespace std;

using ll = long long;
using ull = unsigned long long;
using ld = long double;
using str = string;
using pi = pair<int, int>;
using pl = pair<ll, ll>;

using vi = vector<int>;
using vl = vector<ll>;
using vpi = vector<pair<int, int>>;
using vvi = vector<vi>;

int Bit(int mask, int b) { return (mask >> b) & 1; }

template<class T>
bool ckmin(T &a, const T &b) {
    if (b < a) {
        a = b;
        return true;
    }
    return false;
}

template<class T>
bool ckmax(T &a, const T &b) {
    if (b > a) {
        a = b;
        return true;
    }
    return false;
}

// [l, r)
template<typename T, typename F>
T FindFirstTrue(T l, T r, const F &predicat) {
    --l;
    while (r - l > 1) {
        T mid = l + (r - l) / 2;
        if (predicat(mid)) {
            r = mid;
        } else {
            l = mid;
        }
    }
    return r;
}


template<typename T, typename F>
T FindLastFalse(T l, T r, const F &predicat) {
    return FindFirstTrue(l, r, predicat) - 1;
}


const ll INF = 2e18;
const int INFi = 1e9;
const int N = 30 + 5;
const int LG = 20;

struct matching {
    int n, m;
    std::vector<std::vector<int>> g;
    std::vector<int> p_left, p_right;

    matching(int n = 0, int m = 0) :
            n(n), m(m), g(n), p_left(n, -1), p_right(m, -1)
    {}

    std::pair<int, int> size() const {
        return {n, m};
    }

    void add(int left, int right) {
        g[left].push_back(right);
    }

    std::vector<int> used;
    int pairs = 0;

    bool khun(int v) {
        if (used[v] == pairs + 1)
            return false;

        used[v] = pairs + 1;
        for (auto u : g[v])
            if (p_right[u] == -1) {
                p_right[u] = v;
                p_left[v] = u;
                return true;
            }

        for (auto u : g[v])
            if (khun(p_right[u])) {
                p_right[u] = v;
                p_left[v] = u;
                return true;
            }

        return false;
    }

    int solve(bool need_to_shuffle = false) {
        std::fill(p_left.begin(), p_left.end(), -1);
        std::fill(p_right.begin(), p_right.end(), -1);
        used.assign(n, 0);

        std::vector<int> order(n);
        std::iota(order.begin(), order.end(), 0);
        if (need_to_shuffle) {
            std::shuffle(order.begin(), order.end(), std::mt19937(std::chrono::steady_clock::now().time_since_epoch().count()));
            for (auto &v : g)
                std::shuffle(v.begin(), v.end(), std::mt19937(std::chrono::steady_clock::now().time_since_epoch().count()));
        }

        pairs = 0;
        for (int v : order)
            pairs += khun(v);

        return pairs;
    }

    void dfs(int v) {
        if (used[v])
            return;

        used[v] = 1;
        for (auto u : g[v])
            if (u != p_left[v])
                dfs(p_right[u]);
    }

    std::pair<std::vector<int>, std::vector<int>> minimum_vertex_covering(bool need_to_shuffle = false) {
        int pairs = solve(need_to_shuffle);
        used.assign(n, 0);

        for (int i = 0; i < n; i++)
            if (p_left[i] == -1)
                dfs(i);

        std::vector<int> left;
        std::vector<bool> used_right(m);

        for (int i = 0; i < n; i++)
            if (!used[i]) {
                left.push_back(i);
            } else if (p_left[i] != -1) {
                for (auto j : g[i])
                    used_right[j] = true;
            }

        std::vector<int> right;
        for (int i = 0; i < m; i++)
            if (used_right[i])
                right.push_back(i);

        assert(int(left.size() + right.size()) == pairs);
        return std::make_pair(left, right);
    }
};


void solve() {
    int n, m, k; cin >> n >> m >> k;
    vpi a(n), b(m);
    rep(i, n) cin >> a[i].first >> a[i].second;
    rep(i, m) cin >> b[i].first >> b[i].second;
    vi xx, yy;
    rep(i, n) {
        xx.push_back(a[i].first);
        yy.push_back(a[i].second);
    }
    rep(i, m) {
        xx.push_back(b[i].first);
        yy.push_back(b[i].second);
    }
    sort(all(xx));
    xx.resize(unique(all(xx)) - xx.begin());
    sort(all(yy));
    yy.resize(unique(all(yy)) - yy.begin());
    rep(i, n) {
        a[i].first = lower_bound(all(xx), a[i].first) - xx.begin();
        a[i].second = lower_bound(all(yy), a[i].second) - yy.begin();
    }
    rep(i, m) {
        b[i].first = lower_bound(all(xx), b[i].first) - xx.begin();
        b[i].second = lower_bound(all(yy), b[i].second) - yy.begin();
    }
    int szx = xx.size();
    int szy = yy.size();
    vector<vector<ar<int, 3>>> in_row(szx), in_col(szy);
    rep(i, n) {
        in_row[a[i].first].push_back({a[i].second, 0, i});
        in_col[a[i].second].push_back({a[i].first, 0, i});
    }
    rep(i, m) {
        in_row[b[i].first].push_back({b[i].second, 1, i});
        in_col[b[i].second].push_back({b[i].first, 1, i});
    }
    vector<pair<int, int>> to(m, {-1, -1});
    int ans = 0;
    int L = 0;
    int R = 0;
    vector<pair<int, int>> edges;
    rep(i, szx) {
        vector<ar<int, 3>> &cur = in_row[i];
        sort(all(cur));
        for(int l = 0, r = 0; l < cur.size(); l = r) {
            r = l + 1;
            if (cur[l][1]) continue;
            while (r < cur.size() && cur[r][1]) r++;
            if (r == cur.size()) {
                continue;
            }
            if (r == l + 1) {
                ans++;
                continue;
            }
            ans++;
            int v = L++;
            for(int j = l + 1; j < r; ++j) {
                to[cur[j][2]].first = v;
            }
        }
    }
    rep(i, szy) {
        vector<ar<int, 3>> &cur = in_col[i];
        sort(all(cur));
        for(int l = 0, r = 0; l < cur.size(); l = r) {
            r = l + 1;
            if (cur[l][1]) continue;
            while (r < cur.size() && cur[r][1]) r++;
            if (r == cur.size()) {
                continue;
            }
            if (r == l + 1) {
                ans++;
                continue;
            }
            ans++;
            int v = R++;
            for(int j = l + 1; j < r; ++j) {
                to[cur[j][2]].second = v;
            }
        }
    }
    vector<int> ok(m, 0);
    vector<vi> gL(L), gR(R);
    matching g(L, R);
    map<pair<int, int>, int> edge;
    rep(i, m) {
        if (to[i].first == -1 && to[i].second == -1) {
            continue;
        }
        if (to[i].first == -1) {
            gR[to[i].second].push_back(i);
            continue;
        }
        if (to[i].second == -1) {
            gL[to[i].first].push_back(i);
            continue;
        }
        gL[to[i].first].push_back(i);
        gR[to[i].second].push_back(i);
        g.add(to[i].first, to[i].second);
        edge[to[i]] = i;
    }

    int l = m - k;
    int cnt2 = g.solve();
    rep(i, L) {
        if (g.p_left[i] != -1 && l > 0) {
            ans -= 2;
            pair<int, int> e = {i, g.p_left[i]};
            int ind = edge.at(e);
            ok[ind] = 1;
            l--;
            continue;
        }
    }
    rep(i, L) {
        if (g.p_left[i] == -1 && l > 0) {
            for(auto &j : gL[i]) {
                ans--;
                l--;
                ok[j] = 1;
                break;
            }
        }
    }
    rep(i, R) {
        if (g.p_right[i] == -1 && l > 0) {
            for(auto &j : gR[i]) {
                ans--;
                l--;
                ok[j] = 1;
                break;
            }
        }
    }
    rep(i, m) {
        if (l > 0 && !ok[i]) {
            ok[i] = 1;
            l--;
        }
    }
    assert(l == 0);
    cout << ans << '\n';
    rep(i, m) if (!ok[i]) cout << i + 1 << ' ';
    cout << '\n';
}


signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout << setprecision(12) << fixed;
    int t = 1;
    cin >> t;
    rep(i, t) {
        solve();
    }
    return 0;
}

这程序好像有点Bug,我给组数据试试?

詳細信息

Test #1:

score: 100
Accepted
time: 0ms
memory: 3548kb

input:

3
8 6 4
1 3
2 1
2 6
4 1
4 7
6 1
6 3
6 6
2 3
3 1
4 3
4 6
5 2
6 4
3 2 1
10 12
10 10
10 11
1 4
1 5
1 3 2
1 1
2 1
2 2
2 3

output:

4
2 3 5 6 
2
2 
0
2 3 

result:

ok ok 3 cases (3 test cases)

Test #2:

score: 0
Accepted
time: 71ms
memory: 6748kb

input:

1224
11 17 14
7 3
4 2
8 13
3 15
3 4
5 11
10 2
3 3
8 6
7 11
2 3
10 4
1 3
12 1
2 5
11 9
11 6
11 10
8 15
1 5
9 14
4 11
1 6
10 7
7 6
11 4
8 4
1 11
18 3 2
14 8
2 14
13 13
9 12
14 12
5 6
8 1
10 5
8 6
8 9
6 6
7 5
12 11
6 11
13 5
1 10
7 6
14 5
6 15
2 4
11 1
1 6 4
14 14
13 9
9 3
10 12
7 5
8 13
9 14
1 9 8
4 9...

output:

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

result:

ok ok 1224 cases (1224 test cases)

Test #3:

score: 0
Accepted
time: 115ms
memory: 27128kb

input:

1
86289 95092 40401
911 152
1 270
135 731
347 451
283 224
338 348
166 346
12 385
590 763
939 176
232 405
122 946
397 576
795 823
546 392
33 718
444 598
954 852
185 662
732 539
172 681
386 148
76 495
163 323
711 201
278 363
531 275
66 122
823 983
234 792
102 188
985 423
804 712
419 636
318 331
693 68...

output:

81531
5824 5826 5829 5831 5834 5835 5846 5847 5848 5849 5851 5852 5854 5855 5862 5863 5868 5869 5872 5874 5876 5878 5881 5884 5885 5887 5893 5894 5895 5898 5899 5907 5914 5917 5919 5920 5923 5924 5926 5927 5928 5930 5931 5933 5934 5936 5940 5941 5949 5956 5961 5963 5964 5968 5974 5975 5977 5979 5980...

result:

ok ok 1 cases (1 test case)

Test #4:

score: 0
Accepted
time: 131ms
memory: 25640kb

input:

1
99057 99722 73893
190482185 274379837
466851670 641324039
993028302 128875937
102891466 286559847
526771097 794238060
565736409 328262657
190329865 598878250
790626887 595298790
308031819 470646878
341575785 374318107
257299536 280924175
64420619 591124604
323023069 811512407
428956686 719615923
2...

output:

82045
1 2 5 6 8 9 10 11 13 15 16 17 18 19 20 21 22 24 25 27 28 29 30 33 34 35 36 37 39 41 43 44 45 46 49 50 51 52 54 55 59 60 61 62 63 65 66 67 69 70 71 72 75 79 81 82 83 87 90 91 92 93 94 95 96 99 100 101 102 104 105 107 108 109 110 111 112 113 114 118 120 127 128 129 131 133 136 137 138 142 143 14...

result:

ok ok 1 cases (1 test case)

Test #5:

score: 0
Accepted
time: 342ms
memory: 27628kb

input:

1
100000 99990 27662
913840909 999962982
690565691 31053
780601566 31053
54745498 31053
5383 859704869
538124857 999962982
5383 66851413
1444277 31053
119603839 999962982
999833258 543197820
999833258 349576387
999833258 759855830
999833258 124692224
266093388 999962982
5383 100041707
999833258 2843...

output:

100891
65595 65596 65597 65599 65600 65601 65602 65603 65604 65605 65606 65607 65609 65610 65611 65612 65613 65614 65615 65620 65621 65625 65626 65628 65629 65630 65631 65632 65633 65634 65635 65636 65638 65639 65640 65641 65642 65643 65644 65646 65647 65648 65651 65653 65654 65655 65656 65657 65658...

result:

ok ok 1 cases (1 test case)

Test #6:

score: 0
Accepted
time: 78ms
memory: 19132kb

input:

1
100000 49997 21428
9380 4333
9380 999999628
49202 4333
49202 999999628
50841 4333
50841 999999628
77418 4333
77418 999999628
95722 4333
95722 999999628
144002 4333
144002 999999628
234359 4333
234359 999999628
268942 4333
268942 999999628
288956 4333
288956 999999628
415094 4333
415094 999999628
4...

output:

100000
7099 7100 7102 7103 7104 7105 7106 7108 7110 7113 7114 7117 7119 7120 7122 7123 7126 7130 7131 7134 7135 7136 7140 7145 7149 7151 7154 7157 7158 7160 7162 7163 7167 7170 7172 7173 7174 7176 7178 7182 7183 7184 7188 7190 7197 7199 7201 7204 7205 7206 7208 7209 7211 7212 7213 7215 7216 7221 722...

result:

ok ok 1 cases (1 test case)

Test #7:

score: 0
Accepted
time: 87ms
memory: 23756kb

input:

1
100000 100000 76259
931427170 7
367311884 7
646435086 7
925372747 7
371054451 7
284185575 7
695090232 7
889183241 7
615617158 7
44230096 7
293281406 7
758261641 7
685549291 7
679471071 7
723138327 7
901136691 7
49281635 7
256352978 7
320188290 7
78730802 7
788131872 7
234735044 7
664906524 7
79430...

output:

76258
1 4 6 7 8 9 11 14 15 16 17 19 20 21 23 24 25 27 29 31 34 37 39 41 42 43 44 46 47 48 51 52 53 58 59 62 66 67 68 69 73 75 77 80 81 82 83 84 86 88 89 90 91 94 95 103 104 108 110 112 113 116 119 120 122 125 127 128 131 132 133 134 135 136 138 139 140 141 143 145 148 149 152 153 155 156 157 158 160...

result:

ok ok 1 cases (1 test case)

Test #8:

score: 0
Accepted
time: 337ms
memory: 20004kb

input:

1
100000 49999 24999
2 1
2 1000000000
3 1
3 1000000000
4 1
4 1000000000
5 1
5 1000000000
6 1
6 1000000000
7 1
7 1000000000
8 1
8 1000000000
9 1
9 1000000000
10 1
10 1000000000
11 1
11 1000000000
12 1
12 1000000000
13 1
13 1000000000
14 1
14 1000000000
15 1
15 1000000000
16 1
16 1000000000
17 1
17 10...

output:

99996
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 99 100 10...

result:

ok ok 1 cases (1 test case)

Test #9:

score: 0
Accepted
time: 51ms
memory: 10040kb

input:

556
16 6 3
2 1
2 1000000000
3 1
3 1000000000
4 1
4 1000000000
1 2
1000000000 2
1 3
1000000000 3
1 4
1000000000 4
1 5
1000000000 5
1 6
1000000000 6
2 3
3 3
3 2
4 2
2 4
4 4
32 12 6
2 1
2 1000000000
3 1
3 1000000000
4 1
4 1000000000
5 1
5 1000000000
6 1
6 1000000000
7 1
7 1000000000
8 1
8 1000000000
9 ...

output:

14
2 4 5 
32
1 3 6 7 8 9 
31
1 2 4 9 10 12 13 15 
8
1 
13
1 3 
19
4 5 7 8 9 
11
1 5 6 
20
3 5 6 
15
3 4 6 7 
33
4 6 8 9 10 12 14 
31
1 2 3 5 8 10 14 15 
19
1 5 6 9 10 
31
2 5 6 9 10 
15
3 4 5 8 
28
1 2 3 5 9 
11
1 
19
1 4 6 8 9 
23
1 5 6 9 10 12 
34
1 7 10 11 12 13 14 16 
31
1 2 4 6 10 11 15 16 
29
...

result:

ok ok 556 cases (556 test cases)

Test #10:

score: 0
Accepted
time: 71ms
memory: 20196kb

input:

1
100000 50000 25000
2 1
2 1000000000
3 1
3 1000000000
4 1
4 1000000000
5 1
5 1000000000
6 1
6 1000000000
7 1
7 1000000000
8 1
8 1000000000
9 1
9 1000000000
10 1
10 1000000000
11 1
11 1000000000
12 1
12 1000000000
13 1
13 1000000000
14 1
14 1000000000
15 1
15 1000000000
16 1
16 1000000000
17 1
17 10...

output:

99996
1 4 5 7 8 10 11 14 15 18 19 20 22 25 28 30 33 34 36 38 39 41 43 45 46 47 48 51 54 55 56 57 60 61 63 64 65 68 78 82 85 88 89 90 91 94 97 102 103 104 109 111 113 114 115 117 118 119 121 122 124 129 130 132 135 137 138 141 143 145 146 147 148 149 151 152 153 155 156 157 158 159 160 162 164 165 17...

result:

ok ok 1 cases (1 test case)

Test #11:

score: 0
Accepted
time: 46ms
memory: 9924kb

input:

556
32 15 7
2 1
2 1000000000
3 1
3 1000000000
4 1
4 1000000000
5 1
5 1000000000
6 1
6 1000000000
7 1
7 1000000000
8 1
8 1000000000
9 1
9 1000000000
1 2
1000000000 2
1 3
1000000000 3
1 4
1000000000 4
1 5
1000000000 5
1 6
1000000000 6
1 7
1000000000 7
1 8
1000000000 8
1 9
1000000000 9
7 6
4 3
5 4
2 2
...

output:

28
1 2 3 7 8 10 15 
11
1 4 
20
3 4 
23
4 7 8 9 10 
26
1 2 6 7 8 
17
1 
10
2 
31
2 3 6 8 
14
1 
31
2 3 4 5 7 11 14 
34
2 3 4 5 7 8 15 
16
3 
32
1 2 6 7 8 
29
3 5 
28
1 6 7 8 10 12 15 
31
1 2 4 5 6 8 14 
25
3 5 8 9 
15
2 4 5 
29
1 5 6 9 11 
31
1 4 7 8 
15
1 2 7 
29
1 3 
27
1 3 6 
19
5 6 7 9 
25
1 6 7 ...

result:

ok ok 556 cases (556 test cases)

Test #12:

score: 0
Accepted
time: 73ms
memory: 19200kb

input:

1
100000 49999 24999
2 1
2 1000000000
3 1
3 1000000000
4 1
4 1000000000
5 1
5 1000000000
6 1
6 1000000000
7 1
7 1000000000
8 1
8 1000000000
9 1
9 1000000000
10 1
10 1000000000
11 1
11 1000000000
12 1
12 1000000000
13 1
13 1000000000
14 1
14 1000000000
15 1
15 1000000000
16 1
16 1000000000
17 1
17 10...

output:

99996
1 3 4 6 8 10 12 17 20 22 25 26 27 29 30 32 33 34 35 37 39 42 44 47 48 49 51 54 58 59 60 61 68 69 70 72 74 75 77 78 81 82 84 85 88 89 90 91 93 94 96 97 98 100 103 110 111 112 114 115 116 120 123 124 127 129 130 133 135 136 139 140 143 145 146 149 150 152 153 160 163 169 171 174 175 176 178 179 ...

result:

ok ok 1 cases (1 test case)

Test #13:

score: 0
Accepted
time: 71ms
memory: 10064kb

input:

556
22 1 1
2 1
2 1000000000
1 2
1000000000 2
1 3
1000000000 3
1 4
1000000000 4
1 5
1000000000 5
1 6
1000000000 6
1 7
1000000000 7
1 8
1000000000 8
1 9
1000000000 9
1 10
1000000000 10
1 11
1000000000 11
2 2
18 3 1
2 1
2 1000000000
3 1
3 1000000000
1 2
1000000000 2
1 3
1000000000 3
1 4
1000000000 4
1 ...

output:

29
1 
19
1 
20
1 5 
14
2 5 
25
2 
28
1 2 3 4 6 8 9 
23
1 
29
3 5 8 10 11 
28
2 3 5 6 
5
1 
23
6 7 8 9 11 
31
2 3 5 10 13 14 15 
29
2 3 
7
1 
26
1 
27
2 3 6 9 12 13 
24
1 5 7 
14
3 5 
32
3 4 5 6 10 11 13 14 
24
1 2 5 
27
1 2 3 6 7 10 
32
1 2 3 4 5 9 14 15 
30
1 3 5 
24
2 3 7 
15
2 3 6 
26
1 
18
1 2 6...

result:

ok ok 556 cases (556 test cases)

Test #14:

score: 0
Accepted
time: 83ms
memory: 19756kb

input:

1
100000 49999 24999
2 1
2 1000000000
3 1
3 1000000000
4 1
4 1000000000
5 1
5 1000000000
6 1
6 1000000000
7 1
7 1000000000
8 1
8 1000000000
9 1
9 1000000000
10 1
10 1000000000
11 1
11 1000000000
12 1
12 1000000000
13 1
13 1000000000
14 1
14 1000000000
15 1
15 1000000000
16 1
16 1000000000
17 1
17 10...

output:

99996
1 2 8 11 13 14 15 16 17 19 20 21 26 29 31 36 39 42 45 46 49 51 53 54 55 57 61 62 64 67 68 69 71 73 74 76 78 79 80 81 82 84 85 88 89 91 94 100 101 103 104 109 110 112 113 115 116 120 123 127 130 131 132 133 136 141 147 149 150 151 153 154 155 158 159 161 163 167 168 170 171 173 174 175 177 178 ...

result:

ok ok 1 cases (1 test case)

Test #15:

score: 0
Accepted
time: 114ms
memory: 17852kb

input:

1
100000 49998 34141
2 1
2 1000000000
3 1
3 1000000000
4 1
4 1000000000
5 1
5 1000000000
6 1
6 1000000000
7 1
7 1000000000
8 1
8 1000000000
9 1
9 1000000000
10 1
10 1000000000
11 1
11 1000000000
12 1
12 1000000000
13 1
13 1000000000
14 1
14 1000000000
15 1
15 1000000000
16 1
16 1000000000
17 1
17 10...

output:

118282
1 3 4 5 6 7 8 11 12 13 14 15 16 19 23 26 27 28 29 30 32 34 35 37 38 39 40 42 43 44 45 46 47 48 49 51 53 55 56 57 58 59 60 63 65 66 67 68 69 71 72 73 74 75 76 79 80 81 83 85 86 87 88 91 92 93 94 95 98 101 102 103 104 109 112 113 114 115 116 117 118 119 120 122 124 126 127 128 131 133 134 135 1...

result:

ok ok 1 cases (1 test case)

Test #16:

score: 0
Accepted
time: 116ms
memory: 23636kb

input:

1
100000 82275 67072
2 1
2 1000000000
3 1
3 1000000000
4 1
4 1000000000
5 1
5 1000000000
6 1
6 1000000000
7 1
7 1000000000
8 1
8 1000000000
9 1
9 1000000000
10 1
10 1000000000
11 1
11 1000000000
12 1
12 1000000000
13 1
13 1000000000
14 1
14 1000000000
15 1
15 1000000000
16 1
16 1000000000
17 1
17 10...

output:

119590
1 5 7 8 9 13 21 22 23 25 31 33 35 36 44 45 48 50 54 57 58 61 67 69 71 72 73 79 80 81 87 90 93 97 99 105 106 112 114 115 117 119 120 127 131 137 141 142 144 146 147 148 152 156 157 158 162 165 169 170 172 179 180 184 185 186 193 195 196 203 206 217 221 224 225 226 229 231 233 234 235 236 238 2...

result:

ok ok 1 cases (1 test case)

Test #17:

score: 0
Accepted
time: 76ms
memory: 12984kb

input:

556
30 12 6
2 1
2 1000000000
3 1
3 1000000000
4 1
4 1000000000
5 1
5 1000000000
6 1
6 1000000000
7 1
7 1000000000
8 1
8 1000000000
1 2
1000000000 2
1 3
1000000000 3
1 4
1000000000 4
1 5
1000000000 5
1 6
1000000000 6
1 7
1000000000 7
1 8
1000000000 8
1 9
1000000000 9
2 6
2 8
3 4
4 4
4 8
5 3
5 7
5 8
6...

output:

29
2 4 7 8 10 11 
19
2 3 5 6 7 8 9 10 11 
25
2 3 4 5 6 8 9 10 11 12 
13
3 4 5 
31
2 3 5 6 8 9 11 12 13 14 16 17 18 19 20 21 22 23 24 25 26 27 28 
36
1 4 5 8 9 10 13 
18
2 3 4 5 
20
3 4 6 7 8 
20
2 3 4 5 6 8 9 10 11 12 13 14 16 17 18 
12
2 3 4 5 
8
2 3 4 6 7 8 
15
2 3 4 5 6 
22
2 3 5 6 7 8 9 11 12 13...

result:

ok ok 556 cases (556 test cases)

Test #18:

score: 0
Accepted
time: 216ms
memory: 27152kb

input:

1
100000 99991 75553
2 1
2 1000000000
3 1
3 1000000000
4 1
4 1000000000
5 1
5 1000000000
6 1
6 1000000000
7 1
7 1000000000
8 1
8 1000000000
9 1
9 1000000000
10 1
10 1000000000
11 1
11 1000000000
12 1
12 1000000000
13 1
13 1000000000
14 1
14 1000000000
15 1
15 1000000000
16 1
16 1000000000
17 1
17 10...

output:

101120
1 3 4 7 8 9 10 11 13 15 16 17 18 20 21 22 23 24 25 27 28 30 32 33 34 35 37 39 40 41 42 43 46 47 50 51 54 55 56 57 59 60 62 63 65 66 67 68 69 70 71 73 74 75 77 78 79 80 81 82 85 86 87 88 89 90 91 92 93 95 96 97 98 101 102 103 104 105 106 108 109 110 112 113 114 115 116 117 119 120 121 122 123 ...

result:

ok ok 1 cases (1 test case)

Extra Test:

score: 0
Extra Test Passed