QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#502810#7245. Frank SinatraRainPPRWA 465ms30780kbC++234.4kb2024-08-03 14:37:522024-08-03 14:37:52

Judging History

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

  • [2024-08-03 14:37:52]
  • 评测
  • 测评结果:WA
  • 用时:465ms
  • 内存:30780kb
  • [2024-08-03 14:37:52]
  • 提交

answer

#include <bits/stdc++.h>

using namespace std;

constexpr int N = 2e5 + 10;

// -----------------------------------------------------------------------------

int n, m;

vector<int> s;

#define get_id(x) ({ lower_bound(s.begin(), s.end(), (x)) - s.begin() + 1; })

struct edge {
    int v, w;
    edge() = default;
    edge(int v, int w): v(v), w(w) {}
};

vector<edge> g[N];

int col[N];

// -----------------------------------------------------------------------------

int dfs[2 * N], tot;
int st[N], ed[N];

namespace hld {
    int fa[N], son[N];
    int dep[N], siz[N];
    int top[N];

    void dfs1(int u, int ff) {
        dfs[++tot] = u, st[u] = tot;
        siz[u] = 1, son[u] = -1;
        int mx = -1;
        for (auto t : g[u]) {
            int v = t.v;
            if (v == ff) continue;
            col[v] = get_id(t.w);
            fa[v] = u, dep[v] = dep[u] + 1;
            dfs1(v, u), siz[u] += siz[v];
            if (siz[v] > mx) mx = siz[v], son[u] = v;
        }
        dfs[++tot] = u, ed[u] = tot;
    }

    void dfs2(int u, int tp) {
        top[u] = tp;
        if (son[u] == -1) return;
        dfs2(son[u], tp);
        for (auto t : g[u]) {
            if (t.v == fa[u]) continue;
            if (t.v == son[u]) continue;
            dfs2(t.v, t.v);
        }
    }
}

int lca(int u, int v) {
    while (hld::top[u] != hld::top[v]) {
        if (hld::dep[hld::top[u]] > hld::dep[hld::top[v]])
            u = hld::fa[hld::top[u]];
        else v = hld::fa[hld::top[v]];
    }
    return hld::dep[u] < hld::dep[v] ? u : v;
}

// -----------------------------------------------------------------------------

int block1, belong1[2 * N];

struct query {
    int id, l, r, lca;
    friend bool operator <(const query &a, const query &b) {
        if (belong1[a.l] != belong1[b.l]) return a.l < b.l;
        return belong1[a.l] & 1 ? a.r < b.r : a.r > b.r;
    }
} q[N];

// -----------------------------------------------------------------------------

bool vis[2 * N];

int block, cnt;
int belong[N], L[N], R[N];
int bucket[N], appr[N];

void add(int x) {
    assert(x >= 1);
    assert(x < n);
    if (!bucket[x]) ++appr[belong[x]];
    ++bucket[x];
}

void del(int x) {
    assert(x >= 1);
    assert(x < n);
    --bucket[x];
    if (!bucket[x]) --appr[belong[x]];
}

int get_ans() {
    int inner = 1;
    while (inner <= cnt && appr[inner] == R[inner] - L[inner] + 1) ++inner;
    for (int i = max(L[inner] - 100, 1); i <= min(R[inner] + 100, n); ++i) if (!bucket[i]) return i;
    exit(1);
    return s.size();
}

void calc(int x) {
    assert(x <= n);
    if (vis[x]) del(col[x]);
    else add(col[x]);
    vis[x] ^= 1;
}

// -----------------------------------------------------------------------------

int ans[N];

signed main() {
    cin >> n >> m;
    // 预处理值域分块
    block = sqrt(n), cnt = (n - 1) / block + 1;
    for (int i = 1; i <= n; ++i) belong[i] = (i - 1) / block + 1;
    for (int i = 1; i <= cnt; ++i) R[i] = i * block, L[i] = R[i] - block + 1;
    R[cnt] = n;
    // 操作离线
    for (int i = 2; i <= n; ++i) {
        int u, v, w;
        cin >> u >> v >> w;
        g[u].emplace_back(v, w);
        g[v].emplace_back(u, w);
        s.push_back(w);
    }
    sort(s.begin(), s.end());
    s.erase(unique(s.begin(), s.end()), s.end());
    s.push_back(s.back() + 1);
    // 轻重链剖分
    hld::dfs1(1, -1);
    hld::dfs2(1, 1);
    col[1] = 1;
    for (int i = 1; i <= m; ++i) {
        int u, v;
        cin >> u >> v;
        if (st[u] > st[v]) swap(u, v);
        int l = lca(u, v);
        if (l == u) q[i] = query{i, st[u], st[v], l};
        else q[i] = query{i, ed[u], st[v], -1};
    }
    block1 = max(1, int(tot / sqrt(m * 2 / 3.0)));
    for (int i = 1; i <= tot; ++i) belong1[i] = (i - 1) / block1 + 1;
    sort(q + 1, q + m + 1);
    // 莫队算法
    int l = 1, r = 0;
    for (int i = 1; i <= m; ++i) {
        int x = q[i].l, y = q[i].r;
        while (x < l) calc(dfs[--l]);
        while (y > r) calc(dfs[++r]);
        while (x > l) calc(dfs[l++]);
        while (y < r) calc(dfs[r--]);
        assert(x == l && y == r);
        if (q[i].lca != -1) calc(q[i].lca);
        ans[q[i].id] = get_ans();
        if (q[i].lca != -1) calc(q[i].lca);
    }
    for (int i = 1; i <= m; ++i)
        cout << s[ans[i] - 1] << endl;
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

7 6
2 1 1
3 1 2
1 4 0
4 5 1
5 6 3
5 7 4
1 3
4 1
2 4
2 5
3 5
3 7

output:

0
1
2
2
3
3

result:

ok 6 numbers

Test #2:

score: 0
Accepted
time: 0ms
memory: 17980kb

input:

2 4
1 2 0
1 1
1 2
2 1
2 2

output:

0
1
1
0

result:

ok 4 number(s): "0 1 1 0"

Test #3:

score: 0
Accepted
time: 0ms
memory: 13876kb

input:

10 100
3 7 1
3 1 0
6 1 1
1 9 0
4 1 1
5 8 1
10 6 0
1 2 1
5 3 1
6 1
4 10
6 5
3 3
5 8
9 2
1 3
8 4
8 5
10 10
5 2
7 10
2 10
8 9
5 3
9 4
6 2
1 8
4 7
3 9
2 5
3 7
10 7
2 2
6 6
6 7
1 9
7 8
6 8
7 3
5 10
5 1
1 2
10 8
8 7
4 2
2 3
7 6
2 9
5 4
10 3
2 4
10 6
3 6
7 4
5 6
10 4
8 2
1 4
9 10
7 9
3 5
9 8
7 2
1 1
7 1
7 ...

output:

0
2
2
0
0
2
1
2
0
0
2
2
2
2
0
2
0
2
2
1
2
0
2
0
0
2
1
0
2
0
2
2
0
2
0
0
2
2
2
2
2
0
1
2
2
2
2
2
0
2
2
0
2
2
0
2
0
2
0
2
2
2
2
2
1
2
2
1
2
0
0
2
2
0
0
2
2
2
2
0
2
0
2
0
2
0
0
0
0
1
2
0
2
0
1
2
2
2
2
2

result:

ok 100 numbers

Test #4:

score: 0
Accepted
time: 3ms
memory: 17864kb

input:

10 100
8 1 1
9 1 1
4 1 0
1 3 1
1 6 0
1 2 0
5 1 1
7 1 1
10 1 1
3 7
3 9
7 9
1 4
2 4
5 9
10 7
9 3
7 4
8 10
6 10
1 8
9 4
10 10
10 2
5 6
7 6
8 4
7 3
7 8
3 5
10 5
1 10
8 9
1 1
8 3
10 6
5 10
8 1
6 6
8 2
6 4
5 4
8 8
1 5
5 3
8 7
1 2
4 6
7 1
2 8
2 2
5 5
7 2
5 7
1 7
6 1
2 3
5 8
3 2
10 1
1 3
7 10
7 5
1 9
6 3
5 ...

output:

0
0
0
1
1
0
0
0
2
0
2
0
2
0
2
2
2
2
0
0
0
0
0
0
0
0
2
0
0
0
2
1
2
0
0
0
0
1
1
0
2
0
0
2
0
0
1
2
0
2
0
0
0
0
0
2
0
2
1
2
2
2
0
2
0
2
2
2
0
2
0
2
1
2
0
1
2
0
0
2
0
2
0
2
0
0
2
0
0
1
0
1
0
2
1
2
2
2
2
0

result:

ok 100 numbers

Test #5:

score: 0
Accepted
time: 0ms
memory: 17912kb

input:

10 100
6 7 0
7 10 0
9 2 0
8 9 0
3 4 1
5 8 0
3 10 0
1 5 0
4 2 0
6 5
10 10
5 4
6 4
6 9
6 2
2 5
5 10
9 3
2 4
9 1
2 9
1 2
7 9
10 6
6 6
3 9
4 6
7 8
8 2
8 4
6 8
4 1
5 5
10 7
1 1
1 4
7 3
5 8
10 2
8 1
8 8
1 8
2 10
3 7
9 4
8 9
4 10
3 6
10 8
3 2
10 3
8 5
10 1
4 9
5 6
3 4
9 8
10 5
6 1
9 7
4 4
10 9
9 5
3 1
1 10...

output:

2
0
1
2
2
2
1
2
2
1
1
1
1
2
1
0
2
2
2
1
1
2
1
0
1
0
1
1
1
2
1
0
1
2
1
1
1
2
1
2
2
1
1
2
1
2
0
1
2
2
2
0
2
1
2
2
1
2
1
2
2
1
2
2
0
1
2
1
2
0
2
1
1
2
2
2
0
1
1
1
1
2
2
1
1
1
2
2
2
0
1
0
2
1
2
2
2
2
1
2

result:

ok 100 numbers

Test #6:

score: 0
Accepted
time: 60ms
memory: 18300kb

input:

316 99856
173 102 0
290 81 1
209 299 0
96 16 0
254 48 1
107 173 0
288 102 1
130 94 1
280 152 0
293 187 1
270 76 1
18 301 0
33 136 1
179 212 1
181 60 1
134 129 0
81 240 1
180 132 1
33 296 1
81 14 0
240 184 0
235 42 0
200 70 0
4 259 1
230 244 0
284 252 1
230 236 0
187 216 1
177 305 1
70 28 1
21 279 0
...

output:

2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
0
...

result:

ok 99856 numbers

Test #7:

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

input:

316 99856
15 21 1
152 21 0
58 21 0
200 21 0
21 267 0
227 21 1
21 72 1
21 270 1
21 28 0
172 21 1
26 21 1
21 257 0
90 21 1
21 134 0
21 46 1
53 21 1
21 31 0
124 21 1
21 312 0
110 21 0
189 21 1
21 150 1
178 21 0
265 21 1
21 165 0
54 21 0
21 35 0
97 21 1
102 21 0
21 96 1
161 21 1
66 21 1
21 127 1
16 21 0...

output:

2
2
2
2
1
2
1
1
2
1
0
2
2
2
2
1
0
2
2
2
2
0
2
0
0
2
1
1
2
2
2
2
0
1
1
1
1
1
1
0
0
0
2
2
2
0
2
2
1
2
1
1
1
1
1
1
1
1
1
2
0
2
2
0
1
1
2
2
0
0
2
1
2
2
0
2
0
0
2
0
2
1
0
2
2
1
2
1
0
1
2
2
2
2
2
2
2
1
1
2
2
2
2
2
2
2
1
0
1
0
1
2
0
1
1
0
0
2
2
2
2
1
1
2
1
2
2
0
2
0
1
1
2
1
1
2
1
2
2
1
2
0
2
2
1
2
2
2
0
2
...

result:

ok 99856 numbers

Test #8:

score: 0
Accepted
time: 59ms
memory: 18372kb

input:

316 99856
192 178 1
279 42 0
304 261 0
47 100 0
282 142 0
122 238 1
295 236 1
128 265 1
124 291 0
299 19 1
144 164 1
113 131 0
206 50 0
242 294 1
7 258 0
22 220 1
5 239 0
270 263 1
156 14 1
66 22 0
254 271 1
295 12 0
69 87 0
302 33 0
4 56 1
34 204 0
168 285 1
98 116 1
50 223 1
205 154 1
145 73 0
84 ...

output:

2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
0
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
0
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
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
2
2
2
2
2
2
2
2
2
2
2
0
2
2
2
2
2
2
2
0
2
2
2
2
2
2
2
...

result:

ok 99856 numbers

Test #9:

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

input:

316 99856
173 234 1
290 158 2
143 299 2
74 16 0
254 88 0
107 187 1
288 68 2
234 94 0
280 39 0
293 219 0
270 63 0
286 301 0
181 136 1
179 199 2
221 60 1
9 129 1
143 240 1
206 132 2
33 81 1
81 79 0
313 184 2
235 187 1
200 163 2
148 259 1
230 223 0
189 252 2
204 236 1
284 216 0
259 305 0
124 28 2
21 29...

output:

3
3
3
3
3
1
3
3
3
0
3
3
3
3
3
3
2
3
3
3
3
3
3
1
3
3
3
3
2
3
3
3
3
1
3
0
3
3
3
3
3
3
3
3
0
3
3
3
3
3
3
3
0
2
1
1
3
3
3
1
3
1
0
3
1
3
3
3
3
3
3
3
1
3
3
3
3
3
0
3
3
1
3
3
3
1
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
0
3
3
3
3
3
0
3
3
3
3
3
3
3
3
1
1
3
3
3
0
0
0
3
3
3
3
3
1
0
3
0
3
3
3
3
3
2
3
0
...

result:

ok 99856 numbers

Test #10:

score: 0
Accepted
time: 63ms
memory: 16340kb

input:

316 99856
15 21 1
152 21 1
58 21 1
200 21 1
21 267 1
227 21 1
21 72 0
21 270 1
21 28 1
172 21 2
26 21 2
21 257 2
90 21 0
21 134 0
21 46 1
53 21 2
21 31 2
124 21 2
21 312 1
110 21 2
189 21 2
21 150 1
178 21 1
265 21 0
21 165 2
54 21 2
21 35 2
97 21 1
102 21 2
21 96 0
161 21 1
66 21 2
21 127 0
16 21 0...

output:

2
0
0
0
0
2
0
2
2
1
1
0
0
0
0
0
0
1
1
1
2
2
2
0
1
0
0
1
0
0
0
0
2
0
1
0
1
0
0
0
0
0
1
0
2
0
0
1
1
1
0
1
0
0
1
2
0
0
2
0
2
1
0
1
1
2
0
0
2
1
1
1
2
1
2
1
1
1
0
2
0
0
0
2
2
2
0
1
0
2
0
0
1
1
0
1
0
1
2
0
1
1
0
0
1
0
0
2
0
1
1
0
2
1
0
0
2
0
0
1
2
2
0
2
1
0
1
1
1
0
0
1
1
0
0
2
0
1
0
0
0
1
0
0
0
1
0
2
1
2
...

result:

ok 99856 numbers

Test #11:

score: 0
Accepted
time: 64ms
memory: 18328kb

input:

316 99856
192 178 1
279 42 0
304 261 0
47 100 2
282 142 1
122 238 2
295 236 0
128 265 2
124 291 0
299 19 2
144 164 1
113 131 1
206 50 0
242 294 2
7 258 0
22 220 2
5 239 2
270 263 2
156 14 0
66 22 1
254 271 2
295 12 2
69 87 2
302 33 1
4 56 1
34 204 1
168 285 1
98 116 0
50 223 2
205 154 2
145 73 1
84 ...

output:

3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
1
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
3
3
3
3
0
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
2
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
0
3
3
3
3
3
3
3
3
3
3
3
3
3
3
0
3
3
0
3
3
3
3
3
3
3
3
1
3
3
3
3
3
3
3
0
3
3
3
3
3
3
3
...

result:

ok 99856 numbers

Test #12:

score: 0
Accepted
time: 40ms
memory: 18284kb

input:

316 99856
173 193 2
290 193 3
249 299 3
91 16 2
254 306 3
107 6 1
288 63 3
75 94 3
280 1 0
293 105 1
270 42 0
255 301 2
188 136 0
179 234 3
288 60 2
48 129 0
76 240 3
186 132 1
33 1 2
81 187 3
77 184 0
235 48 3
200 11 2
211 259 0
230 24 2
36 252 3
306 236 0
310 216 0
68 305 2
43 28 3
21 192 3
196 16...

output:

4
4
1
4
1
3
4
0
4
4
4
2
4
4
4
4
4
1
4
4
4
4
1
4
4
4
4
4
0
4
4
1
4
4
4
4
0
0
4
4
4
4
4
4
1
0
4
1
0
1
4
1
0
4
1
4
4
0
3
3
0
1
4
0
4
3
4
2
4
1
4
1
0
4
4
4
3
1
4
4
1
4
4
1
4
4
4
4
1
2
4
1
4
4
4
4
1
4
4
4
0
4
0
3
1
4
1
1
4
4
1
4
4
4
4
1
1
2
2
2
4
1
4
4
1
4
3
1
4
4
1
1
2
4
0
4
1
0
4
4
4
4
4
4
2
1
0
3
4
0
...

result:

ok 99856 numbers

Test #13:

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

input:

316 99856
15 21 2
152 21 0
58 21 3
200 21 3
21 267 2
227 21 1
21 72 1
21 270 1
21 28 0
172 21 0
26 21 2
21 257 3
90 21 0
21 134 2
21 46 0
53 21 3
21 31 1
124 21 3
21 312 3
110 21 1
189 21 2
21 150 3
178 21 1
265 21 0
21 165 0
54 21 1
21 35 0
97 21 0
102 21 0
21 96 3
161 21 0
66 21 0
21 127 0
16 21 2...

output:

0
1
0
0
0
0
1
1
0
2
0
0
2
0
1
0
1
0
0
1
0
0
0
0
2
0
2
1
0
1
0
1
2
0
0
0
1
0
1
1
0
0
0
0
2
1
0
2
0
0
1
0
2
0
0
0
0
0
2
1
2
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
2
0
0
2
0
0
1
1
1
2
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
2
0
0
1
1
1
2
0
0
1
1
0
0
1
0
0
2
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
2
2
0
1
0
0
0
0
0
2
0
0
0
1
...

result:

ok 99856 numbers

Test #14:

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

input:

316 99856
192 178 1
279 42 0
304 261 2
47 100 2
282 142 2
122 238 0
295 236 0
128 265 0
124 291 2
299 19 1
144 164 3
113 131 1
206 50 2
242 294 3
7 258 0
22 220 2
5 239 3
270 263 2
156 14 1
66 22 2
254 271 1
295 12 1
69 87 3
302 33 1
4 56 2
34 204 2
168 285 3
98 116 0
50 223 3
205 154 3
145 73 3
84 ...

output:

4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
0
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
0
4
4
4
4
0
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
0
4
4
4
4
4
4
4
4
4
0
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
0
4
4
1
4
4
4
4
4
4
4
4
0
4
4
4
4
4
4
4
1
4
4
4
4
4
4
4
...

result:

ok 99856 numbers

Test #15:

score: 0
Accepted
time: 427ms
memory: 24496kb

input:

100000 100000
16002 62285 0
94338 15156 0
16232 69491 0
78830 42791 0
42291 79934 0
25280 42281 0
43246 84026 0
81015 59152 0
26228 85524 0
77807 16621 0
87239 27802 0
45572 68749 0
46470 21413 0
91385 31600 0
39840 65919 0
63409 52046 0
61637 45889 0
96346 70771 0
21432 11753 0
38616 69335 0
32943 ...

output:

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
1
1
...

result:

ok 100000 numbers

Test #16:

score: 0
Accepted
time: 422ms
memory: 25500kb

input:

100000 100000
18058 1882 1
77635 23818 0
9851 91935 0
16218 67969 0
45198 25980 1
34560 43159 1
1776 39890 0
98660 22738 1
26971 8570 1
2179 17775 0
62019 51220 0
62891 66989 0
16522 90763 1
18870 64357 0
87537 98200 0
77096 4652 1
23186 24016 0
75961 12188 0
93342 52219 0
92566 95797 0
93844 1045 1...

output:

2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
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
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
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 100000 numbers

Test #17:

score: 0
Accepted
time: 384ms
memory: 24524kb

input:

100000 100000
28219 35524 1
28219 53586 0
64427 28219 0
28219 42140 0
45389 28219 0
28219 52860 0
28219 35426 1
28219 90684 1
80876 28219 0
82716 28219 1
28219 3235 1
28219 71380 0
91782 28219 1
81272 28219 1
36766 28219 0
28219 98110 0
82939 28219 0
28219 38431 0
28219 10730 0
26093 28219 1
28219 1...

output:

0
0
0
2
0
2
0
2
2
2
0
1
0
0
1
2
2
2
2
0
2
2
2
2
1
2
2
1
2
1
0
0
2
2
2
2
2
2
2
2
1
1
1
2
2
2
2
2
2
0
2
0
2
0
1
0
1
0
0
1
2
2
2
2
2
2
2
0
0
0
1
1
2
2
2
1
2
1
0
1
2
1
2
2
2
2
1
2
0
2
2
2
2
2
0
2
2
2
0
1
2
0
0
1
0
1
1
2
0
1
2
0
2
2
2
2
2
1
2
0
1
2
2
1
2
0
2
1
0
1
2
0
1
0
2
1
2
2
2
2
2
2
0
2
0
2
2
1
2
1
...

result:

ok 100000 numbers

Test #18:

score: 0
Accepted
time: 229ms
memory: 30780kb

input:

100000 100000
6196 12153 0
41017 63946 1
50788 1093 0
73450 8393 0
39953 43098 1
79223 31673 0
52002 80524 0
17987 71772 1
30033 94926 1
71307 89317 0
54060 27606 1
19745 34037 0
41237 8207 1
63416 54551 1
53426 80067 1
53006 8664 0
48006 34930 0
80417 39489 1
20067 80710 1
6662 17711 1
30332 56310 ...

output:

2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
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 100000 numbers

Test #19:

score: 0
Accepted
time: 437ms
memory: 24028kb

input:

100000 100000
7760 13303 1
82993 83715 2
62730 56484 0
83039 50548 2
78786 87514 2
10559 10618 1
66287 67668 0
41493 8689 0
57586 13866 2
30300 26277 1
80847 82736 1
78087 44949 1
56814 18488 0
3770 25564 0
92765 44117 1
51973 57772 0
4986 3551 0
48055 89097 1
93264 84315 2
8010 19209 0
14291 53007 ...

output:

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
0
3
3
3
3
3
3
3
3
3
3
3
3
...

result:

ok 100000 numbers

Test #20:

score: 0
Accepted
time: 383ms
memory: 25872kb

input:

100000 100000
47746 88433 0
59039 47746 0
47746 20905 2
85710 47746 1
44992 47746 1
79653 47746 2
47746 14548 0
31210 47746 0
47746 89755 2
47746 73218 0
22700 47746 0
47746 35494 1
47746 49441 2
11681 47746 0
53229 47746 2
47746 44731 0
47746 95088 1
99629 47746 0
47746 96352 1
47746 54190 0
11523 ...

output:

1
1
0
0
2
1
2
1
1
0
0
1
1
0
0
2
0
0
0
1
0
0
1
1
1
1
2
1
1
1
0
0
0
0
1
0
0
1
0
2
0
1
1
1
0
2
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
2
0
2
1
0
1
2
1
0
0
0
1
1
0
1
0
2
1
0
2
2
0
0
1
0
0
1
0
1
0
1
1
2
0
1
1
2
0
0
2
0
1
2
0
0
0
1
0
1
2
0
1
0
1
1
1
1
2
1
0
0
2
0
1
1
0
1
1
1
0
1
0
0
2
0
0
2
0
0
0
0
0
0
1
0
2
...

result:

ok 100000 numbers

Test #21:

score: 0
Accepted
time: 223ms
memory: 29808kb

input:

100000 100000
48973 53883 0
12063 14772 2
6775 32451 0
66201 77174 0
65550 77996 2
98741 34355 1
77638 13750 2
3352 77664 0
59883 33050 1
17186 14578 2
69513 82629 0
1006 42174 1
18820 60006 1
66415 65700 1
44740 71182 1
71950 13297 1
89729 50426 2
63573 67261 1
98428 25648 0
45987 53708 0
29113 418...

output:

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
3
3
3
...

result:

ok 100000 numbers

Test #22:

score: 0
Accepted
time: 465ms
memory: 25580kb

input:

100000 100000
17024 36523 84
26573 32514 116
6731 63527 277
63675 63578 182
71445 49677 83
93835 37340 98
12434 61092 239
80203 96847 68
39780 56175 178
74379 71676 309
11723 41464 194
80813 7960 202
46447 85185 108
92345 34067 298
24118 386 276
76948 48980 2
81038 16844 152
18924 48647 162
67518 96...

output:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
...

result:

ok 100000 numbers

Test #23:

score: 0
Accepted
time: 307ms
memory: 24184kb

input:

100000 100000
56477 56831 270
98074 56831 256
56831 4716 244
56831 93132 278
56831 55319 278
56831 45061 10
56831 82924 297
56831 89764 133
56831 24375 134
56831 93793 143
99474 56831 60
56831 91587 316
3678 56831 217
57831 56831 63
56831 36997 34
71852 56831 191
56831 17774 146
28274 56831 23
56831...

output:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
...

result:

ok 100000 numbers

Test #24:

score: 0
Accepted
time: 225ms
memory: 29820kb

input:

100000 100000
59093 75611 137
581 51203 162
54074 97112 126
10865 36786 69
48055 95244 116
7450 56728 259
92624 69291 173
47563 55140 31
5600 93920 299
78509 28861 31
36582 32778 12
32218 12904 274
22103 41376 264
70187 41753 92
68731 46857 59
19576 17703 87
38244 38734 261
86217 25250 142
51486 750...

output:

317
317
317
317
317
317
317
317
317
317
317
317
317
317
317
317
317
317
317
317
317
317
317
317
317
317
317
317
317
317
317
317
317
176
317
317
317
317
317
317
317
317
317
317
317
317
317
317
317
0
317
317
317
317
317
317
317
317
317
317
317
317
317
317
317
317
317
317
317
317
317
317
317
317
317
31...

result:

ok 100000 numbers

Test #25:

score: -100
Wrong Answer
time: 452ms
memory: 25732kb

input:

100000 100000
29817 84458 99033
53836 73640 55741
85871 77126 61666
9307 90386 93376
27860 95044 41557
44965 31261 54827
43096 31875 8808
80483 5330 46039
43765 53043 74867
20184 92680 35161
97963 1663 63541
44742 37678 74162
39039 85798 62232
26111 88918 91944
72075 65425 80469
81160 17251 3282
661...

output:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
...

result:

wrong answer 6185th numbers differ - expected: '1', found: '3'