QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#201109#5020. 举办乘凉州喵,举办乘凉州谢谢喵hos_lyric8 431ms66740kbC++1410.9kb2023-10-05 11:58:112023-10-05 11:58:11

Judging History

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

  • [2023-10-05 11:58:11]
  • 评测
  • 测评结果:8
  • 用时:431ms
  • 内存:66740kb
  • [2023-10-05 11:58:11]
  • 提交

answer

#include <cassert>
#include <cmath>
#include <cstdint>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <bitset>
#include <complex>
#include <deque>
#include <functional>
#include <iostream>
#include <limits>
#include <map>
#include <numeric>
#include <queue>
#include <set>
#include <sstream>
#include <string>
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <vector>

using namespace std;

using Int = long long;

template <class T1, class T2> ostream &operator<<(ostream &os, const pair<T1, T2> &a) { return os << "(" << a.first << ", " << a.second << ")"; };
template <class T> ostream &operator<<(ostream &os, const vector<T> &as) { const int sz = as.size(); os << "["; for (int i = 0; i < sz; ++i) { if (i >= 256) { os << ", ..."; break; } if (i > 0) { os << ", "; } os << as[i]; } return os << "]"; }
template <class T> void pv(T a, T b) { for (T i = a; i != b; ++i) cerr << *i << " "; cerr << endl; }
template <class T> bool chmin(T &t, const T &f) { if (t > f) { t = f; return true; } return false; }
template <class T> bool chmax(T &t, const T &f) { if (t < f) { t = f; return true; } return false; }
#define COLOR(s) ("\x1b[" s "m")


struct Hld {
  int n, rt;
  // needs to be tree
  // vertex lists
  // modified in build(rt) (parent removed, heavy child first)
  vector<vector<int>> graph;
  vector<int> sz, par, dep;
  int zeit;
  vector<int> dis, fin, sid;
  // head vertex (minimum depth) in heavy path
  vector<int> head;

  Hld() : n(0), rt(-1), zeit(0) {}
  explicit Hld(int n_) : n(n_), rt(-1), graph(n), zeit(0) {}
  void ae(int u, int v) {
    assert(0 <= u); assert(u < n);
    assert(0 <= v); assert(v < n);
    graph[u].push_back(v);
    graph[v].push_back(u);
  }

  void dfsSz(int u) {
    sz[u] = 1;
    for (const int v : graph[u]) {
      auto it = std::find(graph[v].begin(), graph[v].end(), u);
      if (it != graph[v].end()) graph[v].erase(it);
      par[v] = u;
      dep[v] = dep[u] + 1;
      dfsSz(v);
      sz[u] += sz[v];
    }
  }
  void dfsHld(int u) {
    dis[u] = zeit++;
    const int deg = graph[u].size();
    if (deg > 0) {
      int vm = graph[u][0];
      int jm = 0;
      for (int j = 1; j < deg; ++j) {
        const int v = graph[u][j];
        if (sz[vm] < sz[v]) {
          vm = v;
          jm = j;
        }
      }
      swap(graph[u][0], graph[u][jm]);
      head[vm] = head[u];
      dfsHld(vm);
      for (int j = 1; j < deg; ++j) {
        const int v = graph[u][j];
        head[v] = v;
        dfsHld(v);
      }
    }
    fin[u] = zeit;
  }
  void build(int rt_) {
    assert(0 <= rt_); assert(rt_ < n);
    rt = rt_;
    sz.assign(n, 0);
    par.assign(n, -1);
    dep.assign(n, -1);
    dep[rt] = 0;
    dfsSz(rt);
    zeit = 0;
    dis.assign(n, -1);
    fin.assign(n, -1);
    head.assign(n, -1);
    head[rt] = rt;
    dfsHld(rt);
    assert(zeit == n);
    sid.assign(n, -1);
    for (int u = 0; u < n; ++u) sid[dis[u]] = u;
  }

  friend ostream &operator<<(ostream &os, const Hld &hld) {
    const int maxDep = *max_element(hld.dep.begin(), hld.dep.end());
    vector<string> ss(2 * maxDep + 1);
    int pos = 0, maxPos = 0;
    for (int j = 0; j < hld.n; ++j) {
      const int u = hld.sid[j];
      const int d = hld.dep[u];
      if (hld.head[u] == u) {
        if (j != 0) {
          pos = maxPos + 1;
          ss[2 * d - 1].resize(pos, '-');
          ss[2 * d - 1] += '+';
        }
      } else {
        ss[2 * d - 1].resize(pos, ' ');
        ss[2 * d - 1] += '|';
      }
      ss[2 * d].resize(pos, ' ');
      ss[2 * d] += std::to_string(u);
      if (maxPos < static_cast<int>(ss[2 * d].size())) {
        maxPos = ss[2 * d].size();
      }
    }
    for (int d = 0; d <= 2 * maxDep; ++d) os << ss[d] << '\n';
    return os;
  }

  bool contains(int u, int v) const {
    return (dis[u] <= dis[v] && dis[v] < fin[u]);
  }
  int lca(int u, int v) const {
    assert(0 <= u); assert(u < n);
    assert(0 <= v); assert(v < n);
    for (; head[u] != head[v]; ) (dis[u] > dis[v]) ? (u = par[head[u]]) : (v = par[head[v]]);
    return (dis[u] > dis[v]) ? v : u;
  }
  int jumpUp(int u, int d) const {
    assert(0 <= u); assert(u < n);
    assert(d >= 0);
    if (dep[u] < d) return -1;
    const int tar = dep[u] - d;
    for (u = head[u]; ; u = head[par[u]]) {
      if (dep[u] <= tar) return sid[dis[u] + (tar - dep[u])];
    }
  }
  int jump(int u, int v, int d) const {
    assert(0 <= u); assert(u < n);
    assert(0 <= v); assert(v < n);
    assert(d >= 0);
    const int l = lca(u, v);
    const int du = dep[u] - dep[l], dv = dep[v] - dep[l];
    if (d <= du) {
      return jumpUp(u, d);
    } else if (d <= du + dv) {
      return jumpUp(v, du + dv - d);
    } else {
      return -1;
    }
  }
  // [u, v) or [u, v]
  template <class F> void doPathUp(int u, int v, bool inclusive, F f) const {
    assert(contains(v, u));
    for (; head[u] != head[v]; u = par[head[u]]) f(dis[head[u]], dis[u] + 1);
    if (inclusive) {
      f(dis[v], dis[u] + 1);
    } else {
      if (v != u) f(dis[v] + 1, dis[u] + 1);
    }
  }
  // not path order, include lca(u, v) or not
  template <class F> void doPath(int u, int v, bool inclusive, F f) const {
    const int l = lca(u, v);
    doPathUp(u, l, false, f);
    doPathUp(v, l, inclusive, f);
  }

  // (vs, ps): compressed tree
  // vs: DFS order (sorted by dis)
  // vs[ps[x]]: the parent of vs[x]
  // ids[vs[x]] = x, not set for non-tree vertex
  vector<int> ids;
  pair<vector<int>, vector<int>> compress(vector<int> us) {
    // O(n) first time
    ids.resize(n, -1);
    std::sort(us.begin(), us.end(), [&](int u, int v) -> bool {
      return (dis[u] < dis[v]);
    });
    us.erase(std::unique(us.begin(), us.end()), us.end());
    int usLen = us.size();
    assert(usLen >= 1);
    for (int x = 1; x < usLen; ++x) us.push_back(lca(us[x - 1], us[x]));
    std::sort(us.begin(), us.end(), [&](int u, int v) -> bool {
      return (dis[u] < dis[v]);
    });
    us.erase(std::unique(us.begin(), us.end()), us.end());
    usLen = us.size();
    for (int x = 0; x < usLen; ++x) ids[us[x]] = x;
    vector<int> ps(usLen, -1);
    for (int x = 1; x < usLen; ++x) ps[x] = ids[lca(us[x - 1], us[x])];
    return make_pair(us, ps);
  }
};

////////////////////////////////////////////////////////////////////////////////


template <class T> void bAdd(vector<T> &bit, int pos, const T &val) {
  const int bitN = bit.size();
  for (int x = pos; x < bitN; x |= x + 1) bit[x] += val;
}
template <class T> T bSum(const vector<T> &bit, int pos) {
  T ret = 0;
  for (int x = pos; x > 0; x &= x - 1) ret += bit[x - 1];
  return ret;
}
template <class T> T bSum(const vector<T> &bit, int pos0, int pos1) {
  return bSum(bit, pos1) - bSum(bit, pos0);
}


int N;
vector<int> A, B;
int Q;
vector<int> X, Y, D;

Hld hld;
vector<vector<int>> graph;

vector<int> ans;

// dist(lca(X[q], Y[q]), *) <= D[q]
namespace point {
vector<vector<int>> qss;

vector<int> sz, del;
void dfsSz(int u, int p) {
  sz[u] = 1;
  for (const int v : graph[u]) if (p != v) {
    dfsSz(v, u);
    sz[u] += sz[v];
  }
}
string dfsString(int u, int p) {
  ostringstream oss;
  oss << "[" << u;
  for (const int v : graph[u]) if (!del[v] && p != v) {
    oss << " " << dfsString(v, u);
  }
  oss << "]";
  return oss.str();
}
/// vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
vector<vector<pair<int, int>>> duss;
vector<vector<int>> fss;
void dfs(int j, int u, int p, int d) {
  duss[j].emplace_back(d, u);
  if ((int)fss[j].size() < d + 1) fss[j].resize(d + 1, 0);
  ++fss[j][d];
  for (const int v : graph[u]) if (!del[v] && p != v) {
    dfs(j, v, u, d + 1);
  }
}
/// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
void solveSubtree(int depth, int r) {
#ifdef LOCAL
  cerr << string(2 * depth, ' ') << "solveSubtree " << dfsString(r, -1) << endl;
#endif
  vector<int> vs;
  for (const int v : graph[r]) if (!del[v]) {
    vs.push_back(v);
  }
  const int len = vs.size();
  /// vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
  duss.assign(len + 1, {});
  fss.assign(len + 1, vector<int>(2, 0));
  for (int j = 0; j < len; ++j) {
    dfs(j, vs[j], r, 1);
  }
  int mx = 2;
  for (int j = 0; j < len; ++j) {
    chmax(mx, (int)fss[j].size());
  }
  fss[len].assign(mx, 0);
  duss[len].emplace_back(0, r);
  ++fss[len][0];
  for (int j = 0; j < len; ++j) {
    for (int d = 0; d < (int)fss[j].size(); ++d) {
      fss[len][d] += fss[j][d];
    }
  }
  for (int j = 0; j <= len; ++j) {
    for (int d = 1; d < (int)fss[j].size(); ++d) {
      fss[j][d] += fss[j][d - 1];
    }
  }
// cerr<<string(2*depth,' ')<<"duss = "<<duss<<", fss = "<<fss<<endl;
  auto get = [&](int j, int d) -> int {
    return fss[j][min(d, (int)fss[j].size() - 1)];
  };
  for (int j = 0; j <= len; ++j) {
    for (const auto &du : duss[j]) {
      const int d = du.first;
      const int u = du.second;
      for (const int q : qss[u]) {
        if (D[q] >= d) {
          ans[q] += get(len, D[q] - d);
          if (j != len) {
            ans[q] -= get(j, D[q] - d);
          }
        }
      }
    }
  }
  /// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
}
void solveRec(int depth, int u) {
  for (; ; ) {
    int vm = -1;
    for (const int v : graph[u]) if (!del[v]) {
      if (!~vm || sz[vm] < sz[v]) {
        vm = v;
      }
    }
    if (!~vm || 2 * sz[vm] <= sz[u]) {
      solveSubtree(depth, u);
      del[u] = 1;
      for (const int v : graph[u]) if (!del[v]) {
        solveRec(depth + 1, v);
      }
      break;
    } else {
      sz[u] -= sz[vm];
      sz[vm] += sz[u];
      u = vm;
    }
  }
}
void centroidDecomp() {
  sz.assign(N, 0);
  dfsSz(0, -1);
  del.assign(N, 0);
  solveRec(0, 0);
}

void init() {
  qss.assign(N, {});
}
void add(int q, int u) {
  qss[u].push_back(q);
}
void run() {
  centroidDecomp();
}
}  // point


int main() {
  for (; ~scanf("%d", &N); ) {
    A.resize(N - 1);
    B.resize(N - 1);
    for (int i = 0; i < N - 1; ++i) {
      scanf("%d%d", &A[i], &B[i]);
      --A[i];
      --B[i];
    }
    scanf("%d", &Q);
    X.resize(Q);
    Y.resize(Q);
    D.resize(Q);
    for (int q = 0; q < Q; ++q) {
      scanf("%d%d%d", &X[q], &Y[q], &D[q]);
      --X[q];
      --Y[q];
    }
    
    hld = Hld(N);
    for (int i = 0; i < N - 1; ++i) {
      hld.ae(A[i], B[i]);
    }
    graph = hld.graph;
    hld.build(0);
    
    point::init();
    
    for (int q = 0; q < Q; ++q) {
      const int l = hld.lca(X[q], Y[q]);
      point::add(q, l);
      // TODO
    }
    
    ans.assign(Q, 0);
    point::run();
    
    for (int q = 0; q < Q; ++q) {
      printf("%d\n", ans[q]);
    }
  }
  return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 0
Wrong Answer

Test #1:

score: 0
Wrong Answer
time: 4ms
memory: 4884kb

input:

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

output:

2546
1004
4981
59
57
3369
3369
1004
4974
1719
59
171
4515
59
4952
4981
4974
1365
4981
1
1004
4780
4974
4974
1
13
4952
4515
59
4864
215
3369
472
1004
59
2546
472
131
13
4780
2546
13
13
4056
4952
171
4780
4974
13
171
13
59
59
1004
4981
3369
13
2546
57
13
4864
171
4952
59
4515
2087
1
4958
9
4056
3369
1...

result:

wrong answer 1st numbers differ - expected: '3226', found: '2546'

Subtask #2:

score: 8
Accepted

Test #9:

score: 8
Accepted
time: 236ms
memory: 47712kb

input:

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

output:

757
69428
2793
181264
91707
182
32496
199183
6399
15975
11640
119051
236
689
15
9532
41
36592
178936
56
45424
193403
90248
3417
949
68
34133
60471
199861
188090
75088
127
1
6
4
3
3
11
61157
199860
199153
155706
196287
192862
53742
51862
179199
428
196282
199989
3613
26
99007
134461
198159
20382
7518...

result:

ok 199996 numbers

Test #10:

score: 0
Accepted
time: 168ms
memory: 48100kb

input:

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

output:

22
31743
62
30
510
6079
94
24063
190
4079
382
30
62
12159
1022
2043
8063
62
4
3063
4079
30
254
46
10
22
6111
12159
16127
22
1
12031
1
94
382
766
4063
254
46
766
1022
62
766
1
22
46
30
8063
8063
254
3063
22
62
30
1
62
254
4
10
15871
1022
46
2039
6079
22
254
1022
16127
30
766
8127
14
14
10
46
1
62
406...

result:

ok 199995 numbers

Test #11:

score: 0
Accepted
time: 354ms
memory: 55168kb

input:

199993
25163 125238
125238 19096
19096 88864
88864 113505
113505 12722
12722 56225
56225 8736
8736 74926
74926 38529
38529 80231
80231 19719
19719 198784
198784 75213
75213 190174
190174 163340
163340 62363
62363 144160
144160 130912
130912 3919
3919 21218
21218 85281
85281 187312
187312 79930
79930...

output:

97095
57496
116181
132482
144412
69917
174677
96334
37980
80902
148979
22074
166530
153392
43419
163281
148526
62703
79363
199993
153733
152298
5085
156125
117973
61925
36346
95741
124148
102890
20093
5408
77598
176994
177809
169850
144418
43786
189237
69098
5167
199993
103575
105198
197612
38829
20...

result:

ok 199994 numbers

Test #12:

score: 0
Accepted
time: 431ms
memory: 66740kb

input:

200000
3219 118490
118490 61372
61372 74390
74390 88375
88375 63918
63918 37580
37580 33219
33219 170480
170480 81737
81737 153202
153202 93921
93921 149109
149109 88339
88339 167037
167037 67099
67099 58363
58363 6784
6784 109386
109386 11895
11895 14872
14872 65638
65638 43958
43958 181669
181669 ...

output:

59633
108235
72863
144596
90365
57521
48069
163045
124462
18633
39115
111210
59413
80420
86945
182373
99188
57011
148702
53778
132289
68037
69705
50797
91155
77852
27499
106082
87174
122445
78221
71755
10125
93101
163451
16175
104215
50130
81182
30091
44299
81429
91045
111890
73099
72278
74017
59177...

result:

ok 199992 numbers

Test #13:

score: 0
Accepted
time: 227ms
memory: 52420kb

input:

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

output:

40732
40074
40815
13444
89657
22422
23494
61358
102922
66209
62228
32272
77095
68562
27799
74336
45129
71632
68525
13022
71347
63735
92178
64200
90446
50728
83632
61441
43695
10496
35481
81587
75266
77943
56182
14188
46302
108160
84166
3192
52959
522
57676
28165
97982
15371
95012
3437
53633
49240
55...

result:

ok 199998 numbers

Test #14:

score: 0
Accepted
time: 197ms
memory: 59840kb

input:

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

output:

59224
71441
128293
104009
42824
136779
12532
93560
81095
108628
176617
63487
103752
175849
36193
178489
73311
34313
46423
75989
76344
145231
20076
127399
81148
17356
39455
99025
44904
3548
78503
135455
28
136931
58140
53161
33288
134084
67877
26048
51868
74301
139992
165315
126781
136117
28112
86333...

result:

ok 199996 numbers

Test #15:

score: 0
Accepted
time: 167ms
memory: 48420kb

input:

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

output:

65710
203
400
304
388
328
441
19
417
49
311
329
193
71968
895
179
152645
282
7600
185
150933
150045
444
3693
56770
34420
8765
335
73751
4665
3
203
380
44479
392
356
113
373
46663
143312
234
265
386
378
339
184360
404
21904
9861
393
445
441
91
299
9
213
24586
65263
22235
121
35761
169
36121
435
40035...

result:

ok 199995 numbers

Test #16:

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

input:

199997
1 64008
2 4187
3 154904
4 191579
5 107782
6 29053
7 123085
8 191601
9 95335
10 164039
11 171804
12 145532
13 104884
14 19820
15 74055
16 14172
17 98802
18 144668
19 188276
20 173096
21 62815
22 133749
23 65035
24 161785
25 191028
26 84730
27 176488
28 173295
29 110316
30 121532
31 81037
32 81...

output:

135622
123942
47301
113894
93180
10469
9237
13166
2896
20323
182669
26483
168662
47202
7900
7785
129591
1577
17943
5638
16670
16980
32760
153668
394
142656
30298
1801
167880
25099
10860
39103
28660
158337
55
126816
57661
17387
11147
95051
3
13130
28040
163801
141
109445
110915
13173
56634
20527
6325...

result:

ok 199993 numbers

Subtask #3:

score: 0
Wrong Answer

Dependency #2:

100%
Accepted

Test #17:

score: 0
Wrong Answer
time: 230ms
memory: 46408kb

input:

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

output:

190330
676
3
462
32
5
180041
3
9236
4
7780
72
19848
100092
66812
28617
39645
66797
19
12
957
2542
7
68308
382
96
217
50
44
227
12909
1519
54616
1682
24
124101
45
12279
173381
10
33
21516
147537
59
40
5332
183402
67257
4281
4
172420
498
154897
113480
208
174
1
497
172594
1098
788
13628
39540
3716
748...

result:

wrong answer 3rd numbers differ - expected: '6', found: '3'

Subtask #4:

score: 0
Wrong Answer

Test #25:

score: 0
Wrong Answer
time: 200ms
memory: 44792kb

input:

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

output:

12
100250
189419
1417
83887
199124
1908
83887
17
4321
12
6
71
199516
1
181342
71
197305
197305
4321
169235
192649
20
189419
77114
71
195121
170566
109022
100
199516
86
12
194525
354
14548
109022
199516
354
152872
169235
197305
10704
38072
54937
181342
100250
71
11
354
181342
132537
10574
181342
1995...

result:

wrong answer 1st numbers differ - expected: '78', found: '12'

Subtask #5:

score: 0
Skipped

Dependency #1:

0%

Subtask #6:

score: 0
Skipped

Dependency #1:

0%