QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#72389 | #5023. 【模板】树链剖分 | He_Ren | 100 ✓ | 585ms | 93952kb | C++23 | 7.3kb | 2023-01-15 15:15:00 | 2023-01-15 15:16:51 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
const int MAXN = 2e5 + 5;
const int mod = 998244353;
inline void add_mod(int &a,int b){ a+=b; if(a>=mod) a-=mod;}
struct BIT
{
int tree[MAXN], n;
#define lowbit(x) ((x)&-(x))
void init(int _n)
{
n = _n;
fill(tree+1, tree+n+1, 0);
}
void update(int x,int k)
{
while(x<=n)
add_mod(tree[x], k), x += lowbit(x);
}
void update(int l,int r,int k)
{
if(l>r) return;
update(l,k); update(r+1, mod-k);
}
int query(int x)
{
int res = 0;
while(x)
add_mod(res, tree[x]), x ^= lowbit(x);
return res;
}
int query(int l,int r)
{
if(l>r) return 0;
return (query(r)-query(l-1)+mod) %mod;
}
};
int n,m;
vector<int> g[MAXN];
int anc[MAXN], siz[MAXN], dep[MAXN], son[MAXN];
void dfs_tree(int u,int fa)
{
siz[u] = 1; son[u] = 0;
for(int v: g[u]) if(v != fa)
{
anc[v] = u; dep[v] = dep[u] + 1;
dfs_tree(v,u);
siz[u] += siz[v];
if(siz[v] > siz[son[u]]) son[u] = v;
}
}
int dfn[MAXN], seq[MAXN], curdfn = 0, top[MAXN];
void dfs_dfn(int u,int fa,int tp)
{
top[u] = tp; dfn[u] = ++curdfn; seq[curdfn] = u;
if(son[u]) dfs_dfn(son[u], u, tp);
for(int v: g[u]) if(v != fa && v != son[u])
dfs_dfn(v, u, v);
}
int lca(int u,int v)
{
while(top[u] != top[v]) dep[top[u]] > dep[top[v]]? u = anc[top[u]]: v = anc[top[v]];
return dep[u] < dep[v]? u: v;
}
int todep(int u,int k)
{
while(dep[u] > k)
u = dep[top[u]] > k? anc[top[u]]: seq[dfn[u] - (dep[u] - k)];
return u;
}
int getnear(int u,int v) // u -> v
{
assert(u != v);
if(dfn[v] <= dfn[u] && dfn[u] <= dfn[v] + siz[v] - 1)
return todep(u, dep[v] + 1);
else
return anc[v];
}
int get_rotate_siz(int u,int v)
{
assert(u != v);
v = getnear(v, u);
if(v == anc[u])
return siz[u];
else
return n - siz[v];
}
bool insub(int u,int v)
{
return dfn[v] <= dfn[u] && dfn[u] <= dfn[v] + siz[v] - 1;
}
namespace P1
{
vector<int> h[MAXN];
void add_path(int u,int v)
{
h[u].emplace_back(v);
h[v].emplace_back(u);
}
int val[MAXN];
void dfs_val(int u,int fa)
{
for(int v: g[u]) if(v != fa)
dfs_val(v, u);
val[u] = n;
int cur = n - siz[u];
for(int v: g[u]) if(v != fa)
{
val[u] = (val[u] + (ll)cur * siz[v]) %mod;
cur += siz[v];
}
}
int tim[MAXN], curtim = 0;
bool iskey[MAXN];
vector<int> tr[MAXN];
void new_Node(int u)
{
if(tim[u] != curtim)
{
tim[u] = curtim;
iskey[u] = 0;
tr[u].clear();
}
}
void add_edge(int u,int v)
{
tr[u].emplace_back(v);
tr[v].emplace_back(u);
}
void build_tr(vector<int> vec)
{
sort(vec.begin(), vec.end(), [&] (int x,int y){
return dfn[x] < dfn[y];
});
static int sta[MAXN];
int tp = 0;
++curtim;
new_Node(1); sta[++tp] = 1;
for(int u: vec)
{
int v = lca(u, sta[tp]); --tp;
new_Node(u); new_Node(v);
while(dep[sta[tp]] >= dep[v]) add_edge(sta[tp], sta[tp+1]), --tp;
if(sta[tp+1] != v) add_edge(sta[tp+1], v);
sta[++tp] = v;
if(u != v) sta[++tp] = u;
}
while(--tp) add_edge(sta[tp+1], sta[tp]);
for(int u: vec)
iskey[u] = 1;
}
int ans = 0;
int f[MAXN], trsiz[MAXN], tranc[MAXN];
void dfs(int u,int fa,int rt,int rtsonsiz)
{
tranc[u] = fa;
f[u] = 0; trsiz[u] = get_rotate_siz(u, rt);
for(int v: tr[u]) if(v != fa)
{
dfs(v,u,rt,rtsonsiz);
ans = (ans + (ll)f[u] * f[v]) %mod;
if(iskey[u])
{
int x = getnear(v, u);//, sizx = get_rotate_siz(x, u);
if(x != v)
{
int y = getnear(v, x), sizy = get_rotate_siz(y, u);
ans = (ans + (ll)f[v] * (rtsonsiz - sizy + mod)) %mod;
}
else
{
for(int w: tr[v]) if(w != u)
{
int y = getnear(w, x), sizy = get_rotate_siz(y, u);
ans = (ans + (ll)f[w] * (rtsonsiz - sizy + mod)) %mod;
}
if(iskey[v])
{
ans = (ans + (ll)val[v] - (ll)trsiz[v] * (n - rtsonsiz)) %mod;
ans = (ans + mod) %mod;
}
}
}
add_mod(f[u], f[v]);
}
if(iskey[u]) add_mod(f[u], trsiz[u]);
}
void getres(int rt)
{
if(!h[rt].size()) return;
vector<int> vec = h[rt]; vec.emplace_back(rt);
build_tr(vec);
for(int v: tr[rt])
dfs(v, rt, rt, n - get_rotate_siz(rt, v));
}
int solve(void)
{
dfs_val(1,0);
for(int i=1; i<=n; ++i)
getres(i);
return ans;
}
}
namespace P2
{
vector<pii> h[MAXN];
void add_path(int u,int v)
{
int uv = lca(u,v);
h[uv].emplace_back(u,v);
}
int ans = 0;
BIT tree1, tree2, tree3, tree4;
int f[MAXN];
void dfs(int u,int fa)
{
vector<int> ch;
for(int v: g[u]) if(v != fa)
dfs(v, u), ch.emplace_back(v);
vector<int> A;
vector<pii> B;
for(auto t: h[u])
{
int x = t.first, y = t.second;
if(y == u) swap(x, y);
if(x == u) A.emplace_back(y);
else
{
if(dfn[x] > dfn[y]) swap(x, y);
B.emplace_back(x, y);
}
}
sort(B.begin(), B.end(), [&] (const pii &x,const pii &y){
return dfn[x.second] < dfn[y.second];
});
for(int v: ch)
{
ans = (ans + (ll)f[u] * f[v]) %mod;
add_mod(f[u], f[v]);
}
for(int x: A)
{
add_mod(f[u], siz[x]);
}
auto query = [&] (int x) -> ll
{
return (
(ll)siz[x] * (tree1.query(dfn[anc[x]]) - tree1.query(dfn[u]) + mod)
+ tree2.query(dfn[x], dfn[x] + siz[x] - 1)
) %mod;
};
auto update = [&] (int x)
{
tree1.update(dfn[x], dfn[x] + siz[x] - 1, 1);
tree2.update(dfn[x], siz[x]);
};
auto query34 = [&] (int x) -> ll
{
return (
(ll)siz[x] * (tree3.query(dfn[anc[x]]) - tree3.query(dfn[u]) + mod)
+ tree4.query(dfn[x], dfn[x] + siz[x] - 1)
) %mod;
};
auto update34 = [&] (int x,int k)
{
tree3.update(dfn[x], dfn[x] + siz[x] - 1, k);
tree4.update(dfn[x], (ll)siz[x] * k %mod);
};
for(int x: A)
{
int v = getnear(x, u);
ans = (ans + (ll)query(x) * (n - siz[v])) %mod;
ans = (ans + (ll)siz[x] * (tree2.query(dfn[u], dfn[u] + siz[u] - 1)
- tree2.query(dfn[v], dfn[v] + siz[v] - 1) + mod)) %mod;
update(x);
}
for(auto it: B)
{
int x = it.first, y = it.second;
ans = (ans + (ll)query(x) * siz[y]) %mod;
ans = (ans + (ll)query(y) * siz[x]) %mod;
}
static pii sta[MAXN];
int tp = 0;
for(auto it: B)
{
int x = it.second, y = it.first;
while(tp && !insub(x, sta[tp].first))
{
update34(sta[tp].second, mod-1);
--tp;
}
ans = (ans + (ll)siz[x] * query34(y)) %mod;
sta[++tp] = {x, y};
update34(y, 1);
}
while(tp)
{
update34(sta[tp].second, mod-1);
--tp;
}
}
int solve(void)
{
tree1.init(n);
tree2.init(n);
tree3.init(n);
tree4.init(n);
dfs(1,0);
return ans;
}
}
int main(void)
{
int testid;
scanf("%d%d%d",&testid,&n,&m);
for(int i=1; i<n; ++i)
{
int u,v;
scanf("%d%d",&u,&v);
g[u].emplace_back(v);
g[v].emplace_back(u);
}
dep[0] = -1;
dfs_tree(1,0);
dfs_dfn(1,0,1);
for(int i=1; i<=m; ++i)
{
int u,v;
scanf("%d%d",&u,&v);
P1 :: add_path(u,v);
P2 :: add_path(u,v);
}
int ans = 0;
add_mod(ans, P1 :: solve());
add_mod(ans, P2 :: solve());
ans = ans * 2ll %mod;
ans = (ans + (ll)n * (n+1) / 2 %mod * m) %mod;
printf("%d\n",ans);
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 1
Accepted
Test #1:
score: 1
Accepted
time: 1ms
memory: 34428kb
input:
0 100 100 95 73 73 97 97 31 31 29 29 56 56 37 37 80 80 53 53 26 26 81 81 27 27 44 44 12 12 59 59 39 39 89 89 40 40 23 23 35 35 11 11 30 30 47 47 19 19 57 57 87 87 71 71 20 20 84 84 61 61 68 68 79 79 75 75 74 74 1 1 8 8 94 94 50 50 100 100 4 4 92 92 46 46 38 38 14 14 54 54 36 36 76 76 45 45 49 49 93 ...
output:
4035970
result:
ok 1 number(s): "4035970"
Test #2:
score: 0
Accepted
time: 1ms
memory: 34316kb
input:
0 14 91 5 12 12 2 2 4 4 1 1 8 8 14 14 11 11 9 9 10 10 6 6 7 7 13 13 3 12 11 1 14 7 4 8 4 5 2 9 4 7 12 8 14 2 13 13 12 13 5 14 6 9 13 13 10 13 14 8 1 8 10 8 3 7 2 13 3 14 9 13 11 12 5 3 12 11 7 11 6 10 9 11 10 14 12 12 6 12 1 1 13 14 5 1 11 2 14 11 4 14 4 3 4 3 1 10 6 5 9 1 4 8 2 9 12 3 10 9 7 1 9 10...
output:
106743
result:
ok 1 number(s): "106743"
Test #3:
score: 0
Accepted
time: 3ms
memory: 36296kb
input:
0 30 100 2 24 24 8 8 7 7 13 13 20 20 21 21 25 25 14 14 6 6 27 27 10 10 9 9 30 30 19 19 18 18 3 3 1 1 26 26 17 17 11 11 28 28 15 15 29 29 23 23 16 16 5 5 22 22 12 12 4 5 3 28 19 10 7 18 13 17 6 3 1 30 23 19 22 10 29 27 28 16 8 6 8 12 2 16 7 10 2 18 25 19 21 10 27 22 20 27 6 6 1 23 18 3 19 13 20 21 3 ...
output:
463634
result:
ok 1 number(s): "463634"
Subtask #2:
score: 2
Accepted
Dependency #1:
100%
Accepted
Test #4:
score: 2
Accepted
time: 4ms
memory: 36472kb
input:
1 500 500 5 278 278 353 353 248 248 100 100 200 200 215 215 112 112 488 488 301 301 443 443 283 283 2 2 470 470 176 176 368 368 375 375 206 206 73 73 275 275 340 340 26 26 348 348 302 302 242 242 53 53 398 398 385 385 91 91 224 224 181 181 12 12 44 44 122 122 142 142 419 419 78 78 319 319 58 58 425 ...
output:
382603176
result:
ok 1 number(s): "382603176"
Subtask #3:
score: 3
Accepted
Dependency #2:
100%
Accepted
Test #5:
score: 3
Accepted
time: 1ms
memory: 32772kb
input:
2 1557 1557 1080 601 601 487 487 1154 1154 1534 1534 1187 1187 1227 1227 901 901 167 167 1373 1373 533 533 194 194 777 777 671 671 1445 1445 479 479 353 353 640 640 731 731 403 403 1367 1367 1366 1366 582 582 175 175 4 4 596 596 1460 1460 785 785 183 183 1000 1000 444 444 1313 1313 537 537 360 360 1...
output:
264568106
result:
ok 1 number(s): "264568106"
Subtask #4:
score: 7
Accepted
Dependency #3:
100%
Accepted
Test #6:
score: 7
Accepted
time: 155ms
memory: 62780kb
input:
3 85500 85500 17180 10968 10968 12437 12437 24753 24753 35527 35527 34441 34441 49901 49901 35625 35625 68184 68184 928 928 73019 73019 26107 26107 61115 61115 59641 59641 3044 3044 23463 23463 59051 59051 73646 73646 81259 81259 59627 59627 64724 64724 85477 85477 43575 43575 38154 38154 14858 1485...
output:
576394657
result:
ok 1 number(s): "576394657"
Subtask #5:
score: 7
Accepted
Dependency #4:
100%
Accepted
Test #7:
score: 7
Accepted
time: 422ms
memory: 90320kb
input:
4 200000 200000 107385 106532 106532 139267 139267 75515 75515 25720 25720 24045 24045 88414 88414 193814 193814 123507 123507 35305 35305 41501 41501 12108 12108 67481 67481 37044 37044 157151 157151 157723 157723 23250 23250 28686 28686 197119 197119 139640 139640 55472 55472 38867 38867 93298 932...
output:
921223503
result:
ok 1 number(s): "921223503"
Test #8:
score: 0
Accepted
time: 473ms
memory: 93952kb
input:
4 200000 200000 194895 22791 22791 9432 9432 153272 153272 69481 69481 178657 178657 13909 13909 103964 103964 78333 78333 154996 154996 94790 94790 102367 102367 117961 117961 110698 110698 118199 118199 85856 85856 129683 129683 145302 145302 125290 125290 6301 6301 146628 146628 95218 95218 15666...
output:
665557576
result:
ok 1 number(s): "665557576"
Test #9:
score: 0
Accepted
time: 86ms
memory: 42820kb
input:
4 666 200000 44 218 218 442 442 45 45 437 437 326 326 419 419 281 281 662 662 31 31 126 126 568 568 170 170 525 525 77 77 617 617 473 473 125 125 497 497 273 273 368 368 156 156 211 211 561 561 353 353 631 631 292 292 300 300 583 583 556 556 472 472 424 424 110 110 474 474 335 335 64 64 489 489 547 ...
output:
592638256
result:
ok 1 number(s): "592638256"
Subtask #6:
score: 1
Accepted
Test #10:
score: 1
Accepted
time: 1ms
memory: 36376kb
input:
5 100 100 69 40 69 12 69 43 69 94 69 36 69 58 69 76 69 91 69 20 69 68 69 79 69 26 69 34 69 90 69 66 69 23 69 18 69 15 69 16 69 3 69 72 69 55 69 85 69 11 69 74 69 46 69 41 69 52 69 4 69 45 69 2 69 54 69 38 69 78 69 61 69 57 69 22 69 87 69 82 69 30 69 28 69 47 69 33 69 17 69 21 69 98 69 10 69 56 69 93...
output:
507958
result:
ok 1 number(s): "507958"
Test #11:
score: 0
Accepted
time: 3ms
memory: 36340kb
input:
5 14 91 7 10 7 5 7 13 7 2 7 3 7 4 7 1 7 6 7 11 7 8 7 14 7 12 7 9 11 9 7 4 11 6 13 14 1 2 1 5 14 1 6 5 6 14 3 1 12 3 10 8 4 3 12 9 13 4 11 3 6 7 8 5 14 2 8 11 5 13 13 2 10 11 10 9 3 14 1 12 3 13 2 12 11 1 11 7 11 2 7 10 6 8 10 6 2 4 1 6 4 5 13 1 7 3 8 14 1 9 4 12 4 10 9 4 5 14 11 12 10 13 4 8 10 2 2 ...
output:
15795
result:
ok 1 number(s): "15795"
Test #12:
score: 0
Accepted
time: 1ms
memory: 36336kb
input:
5 30 100 12 22 12 19 12 25 12 28 12 10 12 26 12 4 12 27 12 14 12 24 12 5 12 16 12 1 12 9 12 13 12 7 12 11 12 17 12 8 12 23 12 3 12 29 12 21 12 20 12 15 12 18 12 6 12 2 12 30 3 28 29 19 4 25 21 7 21 15 17 1 6 9 7 5 8 28 8 17 2 20 2 19 26 13 22 12 1 26 8 27 5 20 21 20 10 27 26 27 10 15 4 2 19 1 1 28 2...
output:
50056
result:
ok 1 number(s): "50056"
Subtask #7:
score: 2
Accepted
Dependency #6:
100%
Accepted
Test #13:
score: 2
Accepted
time: 4ms
memory: 36400kb
input:
6 500 500 292 110 292 127 292 97 292 376 292 129 292 30 292 469 292 431 292 466 292 191 292 37 292 405 292 404 292 100 292 313 292 205 292 361 292 451 292 363 292 498 292 130 292 287 292 94 292 106 292 399 292 116 292 54 292 476 292 279 292 435 292 68 292 368 292 278 292 104 292 200 292 444 292 293 ...
output:
62638426
result:
ok 1 number(s): "62638426"
Subtask #8:
score: 3
Accepted
Dependency #7:
100%
Accepted
Test #14:
score: 3
Accepted
time: 3ms
memory: 36536kb
input:
7 1557 1557 903 188 903 1160 903 861 903 872 903 790 903 833 903 532 903 1392 903 1086 903 1170 903 506 903 1191 903 862 903 920 903 167 903 1148 903 225 903 182 903 204 903 91 903 493 903 1404 903 1247 903 223 903 185 903 183 903 723 903 784 903 632 903 341 903 1087 903 648 903 419 903 523 903 551 ...
output:
890490730
result:
ok 1 number(s): "890490730"
Subtask #9:
score: 4
Accepted
Dependency #8:
100%
Accepted
Test #15:
score: 4
Accepted
time: 116ms
memory: 45640kb
input:
8 85500 85500 48607 41031 48607 31313 48607 60705 48607 49825 48607 18510 48607 10387 48607 75638 48607 16397 48607 41702 48607 53599 48607 64693 48607 57230 48607 69314 48607 47178 48607 68008 48607 10100 48607 55170 48607 29094 48607 21752 48607 3826 48607 42871 48607 20124 48607 24116 48607 47700...
output:
847993718
result:
ok 1 number(s): "847993718"
Subtask #10:
score: 4
Accepted
Dependency #9:
100%
Accepted
Test #16:
score: 4
Accepted
time: 297ms
memory: 58000kb
input:
9 200000 200000 87700 58059 87700 59169 87700 156127 87700 56736 87700 83047 87700 113585 87700 77319 87700 174624 87700 25900 87700 4230 87700 151960 87700 119248 87700 150232 87700 72119 87700 168599 87700 177594 87700 184589 87700 65142 87700 108930 87700 185024 87700 189477 87700 36270 87700 125...
output:
496496457
result:
ok 1 number(s): "496496457"
Test #17:
score: 0
Accepted
time: 333ms
memory: 60420kb
input:
9 200000 200000 115833 18077 115833 57426 115833 172099 115833 5672 115833 131127 115833 128256 115833 113731 115833 65837 115833 138918 115833 22038 115833 143955 115833 178091 115833 102226 115833 161602 115833 112929 115833 152144 115833 128930 115833 206 115833 190531 115833 188103 115833 141951...
output:
973134772
result:
ok 1 number(s): "973134772"
Test #18:
score: 0
Accepted
time: 88ms
memory: 43560kb
input:
9 666 200000 540 187 540 121 540 182 540 208 540 330 540 249 540 47 540 491 540 166 540 32 540 425 540 605 540 130 540 493 540 184 540 78 540 457 540 178 540 632 540 240 540 411 540 278 540 310 540 589 540 479 540 407 540 353 540 649 540 385 540 617 540 497 540 161 540 444 540 492 540 282 540 123 54...
output:
220418397
result:
ok 1 number(s): "220418397"
Subtask #11:
score: 1
Accepted
Test #19:
score: 1
Accepted
time: 1ms
memory: 34316kb
input:
10 100 50 50 39 28 50 83 28 96 83 23 96 58 23 72 58 61 72 47 61 29 47 89 29 42 89 35 42 27 35 10 27 95 10 84 95 91 84 80 91 44 80 74 44 41 74 46 41 9 46 70 9 55 70 59 55 33 59 7 33 87 7 26 87 6 26 60 6 65 60 90 65 25 90 57 25 75 57 22 75 49 22 2 49 52 2 20 52 15 20 76 15 56 76 98 56 92 98 30 92 39 9...
output:
416638
result:
ok 1 number(s): "416638"
Subtask #12:
score: 2
Accepted
Dependency #11:
100%
Accepted
Test #20:
score: 2
Accepted
time: 3ms
memory: 36388kb
input:
11 500 250 301 416 301 78 416 253 416 383 78 163 78 133 253 138 253 296 383 197 383 108 163 281 163 342 133 386 133 3 138 95 138 375 296 283 296 207 197 41 197 87 108 135 108 490 281 158 281 115 342 316 342 463 386 408 386 4 3 126 3 458 95 64 95 44 375 436 375 230 283 169 283 174 207 317 207 110 41 ...
output:
31314444
result:
ok 1 number(s): "31314444"
Test #21:
score: 0
Accepted
time: 2ms
memory: 36496kb
input:
11 500 250 193 116 43 193 114 43 219 114 401 219 248 401 128 248 373 128 344 373 272 344 27 272 178 27 396 178 31 396 149 31 311 149 460 311 161 460 129 161 426 129 59 426 65 59 326 65 457 326 498 457 205 498 40 205 233 40 371 233 66 371 275 66 224 275 135 224 22 135 244 22 400 244 492 400 97 492 71...
output:
111485258
result:
ok 1 number(s): "111485258"
Subtask #13:
score: 5
Accepted
Dependency #12:
100%
Accepted
Test #22:
score: 5
Accepted
time: 5ms
memory: 36588kb
input:
12 1557 778 131 1238 131 137 1238 68 1238 514 137 1053 137 934 68 1084 68 1286 514 69 514 1134 1053 431 1053 346 934 628 934 980 1084 1394 1084 469 1286 164 1286 737 69 1121 69 170 1134 336 1134 1481 431 60 431 223 346 1411 346 693 628 656 628 206 980 863 980 458 1394 89 1394 586 469 259 469 739 164...
output:
943639446
result:
ok 1 number(s): "943639446"
Test #23:
score: 0
Accepted
time: 13ms
memory: 34748kb
input:
12 1557 778 357 1478 1545 357 232 1545 1383 232 14 1383 532 14 241 532 844 241 639 844 1071 639 6 1071 727 6 111 727 1345 111 1066 1345 829 1066 912 829 1029 912 243 1029 1262 243 1399 1262 435 1399 422 435 550 422 533 550 365 533 1298 365 167 1298 988 167 1058 988 995 1058 1346 995 1523 1346 1265 1...
output:
950433299
result:
ok 1 number(s): "950433299"
Subtask #14:
score: 7
Accepted
Dependency #13:
100%
Accepted
Test #24:
score: 7
Accepted
time: 133ms
memory: 45440kb
input:
13 85500 42750 13838 67346 13838 13214 67346 5590 67346 31096 13214 56872 13214 3380 5590 25478 5590 14540 31096 35895 31096 36208 56872 70325 56872 60068 3380 73006 3380 5833 25478 43012 25478 38254 14540 48699 14540 52429 35895 40594 35895 43677 36208 61064 36208 74617 70325 8566 70325 64247 60068...
output:
238037189
result:
ok 1 number(s): "238037189"
Test #25:
score: 0
Accepted
time: 132ms
memory: 57264kb
input:
13 85500 42750 77250 41145 222 77250 73686 222 26373 73686 664 26373 19235 664 29029 19235 46687 29029 65423 46687 56322 65423 78862 56322 21149 78862 17741 21149 81494 17741 25788 81494 23817 25788 83147 23817 34106 83147 15060 34106 9504 15060 85181 9504 35683 85181 2286 35683 5964 2286 21067 5964...
output:
918174986
result:
ok 1 number(s): "918174986"
Subtask #15:
score: 7
Accepted
Dependency #14:
100%
Accepted
Test #26:
score: 7
Accepted
time: 383ms
memory: 57488kb
input:
14 200000 100000 167815 28097 28097 160292 160292 163184 163184 1066 1066 165530 165530 45867 45867 23229 23229 135516 135516 138218 138218 48890 48890 152232 152232 153829 153829 113057 113057 37852 37852 71892 71892 174720 174720 110183 110183 96767 96767 97742 97742 57511 57511 6232 6232 136061 1...
output:
494163319
result:
ok 1 number(s): "494163319"
Test #27:
score: 0
Accepted
time: 400ms
memory: 57232kb
input:
14 200000 100000 8698 50981 8698 79774 50981 182721 50981 105579 79774 11618 79774 140458 182721 98102 182721 137646 105579 181078 105579 150984 11618 137202 11618 81073 140458 90476 140458 106180 98102 150167 98102 129805 137646 2901 137646 159240 181078 24389 181078 111486 150984 73328 150984 1322...
output:
486328103
result:
ok 1 number(s): "486328103"
Test #28:
score: 0
Accepted
time: 396ms
memory: 57308kb
input:
14 200000 100000 106924 72461 72461 153397 72461 145165 145165 193068 145165 37837 145165 163546 37837 132702 163546 143593 37837 104641 143593 88241 104641 168142 168142 157866 143593 115250 168142 177330 132702 196685 196685 114668 196685 143096 177330 148702 114668 109605 109605 195390 143096 146...
output:
555700419
result:
ok 1 number(s): "555700419"
Test #29:
score: 0
Accepted
time: 389ms
memory: 82716kb
input:
14 200000 100000 103999 106101 35332 103999 100356 35332 80124 100356 175311 80124 102562 175311 102262 102562 192881 102262 128104 192881 116094 128104 23400 116094 57559 23400 68620 57559 44837 68620 174896 44837 139565 174896 84478 139565 125161 84478 50412 125161 153960 50412 36619 153960 129851...
output:
514251012
result:
ok 1 number(s): "514251012"
Subtask #16:
score: 1
Accepted
Test #30:
score: 1
Accepted
time: 1ms
memory: 36316kb
input:
15 100 99 75 90 97 75 100 97 87 100 63 87 54 63 25 54 73 25 28 73 48 28 66 48 31 66 21 31 55 21 68 55 4 68 51 4 36 51 70 36 53 70 34 53 44 34 17 44 84 17 95 84 46 95 94 46 92 94 32 92 30 32 33 30 3 33 5 3 45 5 8 45 79 8 76 79 86 76 41 86 61 41 93 61 7 93 71 7 81 71 20 81 91 20 47 91 9 47 82 9 90 29 ...
output:
5051142
result:
ok 1 number(s): "5051142"
Subtask #17:
score: 3
Accepted
Dependency #16:
100%
Accepted
Test #31:
score: 3
Accepted
time: 3ms
memory: 36388kb
input:
16 500 499 486 111 486 296 111 65 111 130 296 403 296 251 65 489 65 273 130 166 130 91 403 245 403 39 251 231 251 305 489 246 489 226 273 101 273 71 166 281 166 342 91 254 91 292 245 416 245 31 39 165 39 450 231 476 231 444 305 439 305 478 246 170 246 77 226 174 226 75 101 110 101 417 71 347 71 348 ...
output:
86658082
result:
ok 1 number(s): "86658082"
Test #32:
score: 0
Accepted
time: 4ms
memory: 36488kb
input:
16 500 499 139 454 173 139 492 173 449 492 488 449 80 488 204 80 497 204 371 497 259 371 182 259 59 182 498 59 380 498 296 380 238 296 382 238 392 382 240 392 183 240 282 183 203 282 146 203 49 146 25 49 485 25 360 485 171 360 40 171 465 40 151 465 56 151 245 56 231 245 254 231 79 254 138 79 46 138 ...
output:
498935422
result:
ok 1 number(s): "498935422"
Subtask #18:
score: 5
Accepted
Dependency #17:
100%
Accepted
Test #33:
score: 5
Accepted
time: 1ms
memory: 36624kb
input:
17 1557 1556 662 869 662 1145 869 1539 869 169 1145 189 1145 322 1539 628 1539 1121 169 543 169 1398 189 663 189 565 322 584 322 22 628 1346 628 208 1121 1166 1121 170 543 1486 543 1005 1398 1507 1398 374 663 1385 663 955 565 192 565 1239 584 350 584 80 22 860 22 212 1346 1223 1346 555 208 1328 208 ...
output:
241984860
result:
ok 1 number(s): "241984860"
Test #34:
score: 0
Accepted
time: 3ms
memory: 36772kb
input:
17 1557 1556 1526 1188 532 1526 1399 532 940 1399 738 940 1123 738 598 1123 339 598 895 339 442 895 1352 442 655 1352 1120 655 1214 1120 970 1214 1132 970 1242 1132 918 1242 1529 918 1514 1529 999 1514 1365 999 686 1365 287 686 148 287 1107 148 1133 1107 857 1133 963 857 142 963 912 142 1360 912 357...
output:
401528572
result:
ok 1 number(s): "401528572"
Subtask #19:
score: 4
Accepted
Dependency #18:
100%
Accepted
Test #35:
score: 4
Accepted
time: 160ms
memory: 45960kb
input:
18 85500 85499 79604 24095 79604 24414 24095 26310 24095 10552 24414 83121 24414 50832 26310 66781 26310 24233 10552 22408 10552 39003 83121 20071 83121 1456 50832 552 50832 13320 66781 81642 66781 37094 24233 45275 24233 39349 22408 30671 22408 5316 39003 31434 39003 52169 20071 4772 20071 71992 14...
output:
982577652
result:
ok 1 number(s): "982577652"
Test #36:
score: 0
Accepted
time: 171ms
memory: 52812kb
input:
18 85500 85499 52565 13607 20212 52565 59671 20212 39468 59671 32518 39468 84694 32518 52967 84694 27336 52967 45987 27336 55292 45987 49680 55292 71440 49680 42397 71440 66859 42397 78900 66859 19655 78900 82370 19655 12787 82370 69544 12787 62150 69544 34748 62150 45189 34748 31404 45189 36712 314...
output:
875399769
result:
ok 1 number(s): "875399769"
Subtask #20:
score: 5
Accepted
Dependency #19:
100%
Accepted
Test #37:
score: 5
Accepted
time: 427ms
memory: 62020kb
input:
19 200000 199999 112210 58145 58145 117706 117706 150893 150893 72189 72189 10783 10783 52500 52500 181435 181435 78824 78824 165926 165926 26206 26206 40569 40569 183244 183244 125467 125467 80960 80960 163301 163301 116393 116393 180286 180286 184558 184558 41295 41295 33033 33033 35233 35233 1390...
output:
457541131
result:
ok 1 number(s): "457541131"
Test #38:
score: 0
Accepted
time: 447ms
memory: 58508kb
input:
19 200000 199999 191112 13190 191112 21872 13190 119504 13190 155021 21872 40970 21872 194701 119504 146680 119504 139414 155021 148354 155021 39973 40970 190570 40970 184953 194701 27061 194701 52990 146680 142237 146680 139503 139414 138138 139414 107020 148354 41336 148354 125927 39973 13380 3997...
output:
267636725
result:
ok 1 number(s): "267636725"
Test #39:
score: 0
Accepted
time: 496ms
memory: 60632kb
input:
19 200000 199999 81347 153979 81347 74265 153979 63984 63984 74990 74265 105685 74990 80972 80972 124146 124146 129641 80972 11089 11089 61280 129641 137183 105685 116991 116991 106225 106225 42763 137183 15742 15742 134543 137183 28130 28130 143733 143733 151779 143733 182725 143733 72762 106225 19...
output:
682481819
result:
ok 1 number(s): "682481819"
Test #40:
score: 0
Accepted
time: 438ms
memory: 90256kb
input:
19 200000 199999 56597 95771 67800 56597 171198 67800 66036 171198 188289 66036 24901 188289 197775 24901 66774 197775 36760 66774 14450 36760 196818 14450 158437 196818 32580 158437 153573 32580 12213 153573 115956 12213 191311 115956 178561 191311 187932 178561 52645 187932 105091 52645 151678 105...
output:
232262637
result:
ok 1 number(s): "232262637"
Subtask #21:
score: 2
Accepted
Dependency #1:
100%
Accepted
Dependency #6:
100%
Accepted
Dependency #11:
100%
Accepted
Dependency #16:
100%
Accepted
Test #41:
score: 2
Accepted
time: 1ms
memory: 34308kb
input:
20 100 100 74 6 6 71 71 68 68 66 71 52 52 79 52 8 79 64 8 5 8 13 13 62 62 25 79 24 24 27 27 81 81 47 47 49 47 88 49 53 53 72 72 90 90 91 47 73 73 48 72 38 73 23 13 33 38 77 91 18 91 87 23 63 73 60 60 29 29 11 60 44 29 41 38 70 11 10 60 84 10 40 38 26 84 7 26 14 14 76 84 2 40 80 14 57 80 65 18 17 2 9...
output:
606418
result:
ok 1 number(s): "606418"
Test #42:
score: 0
Accepted
time: 1ms
memory: 36448kb
input:
20 50 100 42 47 47 2 2 46 46 7 7 5 5 48 48 1 48 41 48 9 5 36 9 37 36 20 7 22 22 50 37 13 13 29 13 18 22 35 22 8 18 19 8 43 19 32 13 21 8 30 8 33 21 25 35 24 43 16 50 23 23 27 21 49 24 17 49 34 23 38 17 31 21 44 31 10 44 15 44 45 17 4 45 6 6 28 15 12 45 3 4 11 28 40 40 26 3 14 14 39 21 18 44 49 1 11 ...
output:
174600
result:
ok 1 number(s): "174600"
Subtask #22:
score: 3
Accepted
Dependency #2:
100%
Accepted
Dependency #7:
100%
Accepted
Dependency #12:
100%
Accepted
Dependency #17:
100%
Accepted
Dependency #21:
100%
Accepted
Test #43:
score: 3
Accepted
time: 5ms
memory: 34364kb
input:
21 500 500 29 65 29 316 65 249 65 283 316 199 316 390 249 66 249 246 283 322 283 221 199 28 199 179 390 453 390 368 66 353 66 386 246 447 246 423 322 93 322 198 221 454 221 323 28 345 28 265 179 334 179 335 453 202 453 88 368 25 368 375 353 196 353 8 386 220 386 456 447 471 447 117 423 373 423 321 9...
output:
63662038
result:
ok 1 number(s): "63662038"
Test #44:
score: 0
Accepted
time: 4ms
memory: 34296kb
input:
21 57 56 31 57 31 15 57 16 57 28 15 2 15 17 16 4 16 38 28 5 28 56 2 45 2 51 17 14 17 10 4 52 4 29 38 35 38 7 5 20 5 12 56 43 56 42 45 11 45 23 51 26 51 25 14 47 14 34 10 50 10 37 52 19 52 1 29 8 29 13 35 55 35 22 7 9 7 49 20 48 20 36 12 41 12 27 43 6 43 3 42 18 42 30 11 21 11 32 23 24 23 53 26 46 26...
output:
197898
result:
ok 1 number(s): "197898"
Subtask #23:
score: 3
Accepted
Dependency #3:
100%
Accepted
Dependency #8:
100%
Accepted
Dependency #13:
100%
Accepted
Dependency #18:
100%
Accepted
Dependency #22:
100%
Accepted
Test #45:
score: 3
Accepted
time: 4ms
memory: 36468kb
input:
22 1557 1557 1274 55 55 644 644 544 55 455 644 33 33 51 51 187 51 468 33 1284 1284 685 685 188 685 518 468 1318 468 416 188 27 27 907 27 512 907 1401 1401 1282 1282 594 1282 663 187 593 1401 1197 593 1005 1005 525 663 1125 1197 1191 663 370 1125 170 1125 1148 1005 1327 1148 1052 1148 945 525 688 663...
output:
897967826
result:
ok 1 number(s): "897967826"
Subtask #24:
score: 9
Accepted
Dependency #4:
100%
Accepted
Dependency #9:
100%
Accepted
Dependency #14:
100%
Accepted
Dependency #19:
100%
Accepted
Dependency #23:
100%
Accepted
Test #46:
score: 9
Accepted
time: 180ms
memory: 44396kb
input:
23 85500 85500 41282 81916 41282 22714 81916 48381 81916 53688 22714 63137 22714 28885 48381 40611 48381 56298 53688 69377 53688 63698 63137 65762 63137 84449 28885 40781 28885 46154 40611 47169 40611 65560 56298 69671 56298 58253 69377 35957 69377 36522 63698 67090 63698 62301 65762 21109 65762 442...
output:
890975219
result:
ok 1 number(s): "890975219"
Test #47:
score: 0
Accepted
time: 199ms
memory: 45016kb
input:
23 85500 85500 78066 62882 62882 75975 75975 25918 75975 49373 25918 57678 25918 75575 75575 28237 49373 10627 10627 34010 34010 5009 75575 65620 34010 159 65620 71920 10627 61911 71920 63046 63046 77174 77174 60312 77174 30228 71920 52716 60312 62163 71920 47951 47951 7544 159 10927 10927 17206 527...
output:
954803777
result:
ok 1 number(s): "954803777"
Test #48:
score: 0
Accepted
time: 48ms
memory: 38432kb
input:
23 666 85500 584 294 294 481 481 431 431 596 596 421 481 229 229 651 651 316 651 13 316 437 437 635 635 503 635 452 421 652 437 346 635 541 541 464 346 17 13 407 407 486 346 270 503 60 407 141 541 453 13 544 652 666 17 597 597 338 17 303 338 448 303 569 452 264 544 582 582 255 582 328 569 260 346 62...
output:
551968034
result:
ok 1 number(s): "551968034"
Subtask #25:
score: 9
Accepted
Dependency #5:
100%
Accepted
Dependency #10:
100%
Accepted
Dependency #15:
100%
Accepted
Dependency #20:
100%
Accepted
Dependency #24:
100%
Accepted
Test #49:
score: 9
Accepted
time: 124ms
memory: 41708kb
input:
24 666 200000 592 28 592 352 28 52 28 33 352 441 352 56 52 561 52 105 33 519 33 31 441 76 441 662 56 75 56 436 561 464 561 201 105 206 105 233 519 399 519 24 31 475 31 610 76 205 76 619 662 94 662 562 75 155 75 568 436 456 436 219 464 448 464 106 201 303 201 325 206 540 206 368 233 534 233 616 399 3...
output:
17266370
result:
ok 1 number(s): "17266370"
Test #50:
score: 0
Accepted
time: 585ms
memory: 57408kb
input:
24 200000 200000 125078 21480 21480 119020 119020 47296 21480 135 47296 32452 47296 195111 195111 123728 195111 63741 63741 68099 68099 97712 97712 32208 32208 57337 97712 94238 57337 75183 32208 142416 94238 186470 68099 123267 75183 100450 142416 158797 158797 96722 142416 114792 75183 105939 1587...
output:
465239106
result:
ok 1 number(s): "465239106"
Test #51:
score: 0
Accepted
time: 119ms
memory: 42472kb
input:
24 666 200000 155 363 320 155 582 320 223 582 639 223 23 639 284 23 248 284 453 248 167 453 83 167 644 83 278 644 263 278 550 263 631 550 1 631 516 1 389 516 217 389 489 217 650 489 538 650 113 538 17 113 468 17 422 468 488 422 627 488 364 627 252 364 642 252 189 642 536 189 659 536 214 659 632 214 ...
output:
376805952
result:
ok 1 number(s): "376805952"
Test #52:
score: 0
Accepted
time: 533ms
memory: 80900kb
input:
24 200000 200000 84701 58570 65541 84701 79792 65541 53565 79792 90762 53565 117946 90762 179780 117946 107139 179780 21265 107139 69796 21265 192056 69796 180211 192056 121738 180211 137836 121738 95373 137836 177281 95373 124100 177281 12086 124100 95919 12086 21497 95919 26725 21497 118202 26725 ...
output:
276728604
result:
ok 1 number(s): "276728604"
Test #53:
score: 0
Accepted
time: 107ms
memory: 43784kb
input:
24 666 200000 183 472 472 622 622 60 60 646 646 611 611 282 282 424 424 45 45 340 340 500 500 173 173 180 180 82 82 264 183 299 299 546 546 213 213 637 637 446 446 157 157 56 56 111 111 380 380 587 587 303 303 492 492 76 76 383 183 410 410 435 435 205 205 429 429 421 421 184 184 223 223 15 15 629 62...
output:
224802835
result:
ok 1 number(s): "224802835"
Test #54:
score: 0
Accepted
time: 512ms
memory: 59476kb
input:
24 200000 200000 38321 154844 154844 65046 65046 22719 22719 20686 20686 74019 74019 138700 138700 138899 138899 4329 4329 117701 117701 36588 36588 35305 35305 1474 1474 111588 111588 145550 145550 28652 28652 172161 172161 93502 93502 181663 181663 44371 44371 63228 63228 50046 50046 156245 156245...
output:
307061650
result:
ok 1 number(s): "307061650"
Test #55:
score: 0
Accepted
time: 111ms
memory: 39500kb
input:
24 666 200000 609 397 609 442 397 73 397 408 442 198 442 445 73 391 73 402 408 527 408 659 198 553 198 653 445 91 445 597 391 204 391 606 402 389 402 641 527 314 527 392 659 561 659 311 553 58 553 182 653 263 653 291 91 35 91 463 597 16 597 222 204 168 204 111 606 525 606 619 389 489 389 638 641 611...
output:
947021643
result:
ok 1 number(s): "947021643"
Test #56:
score: 0
Accepted
time: 275ms
memory: 45656kb
input:
24 56789 200000 51426 21124 21124 29834 29834 56603 56603 29872 56603 37127 29872 48178 29872 31951 37127 18279 37127 28794 31951 27855 27855 11089 11089 136 28794 34758 27855 25592 25592 32286 25592 45761 32286 33874 136 27348 27348 30186 33874 10045 10045 45664 32286 25347 25347 20391 25592 48605 ...
output:
640507254
result:
ok 1 number(s): "640507254"
Test #57:
score: 0
Accepted
time: 110ms
memory: 40464kb
input:
24 666 200000 634 488 386 634 16 386 581 16 359 581 288 359 620 288 487 620 429 487 332 429 416 332 479 416 122 479 128 122 159 128 606 159 329 606 604 329 412 604 633 412 217 633 427 217 113 427 523 113 469 523 6 469 373 6 645 373 131 645 579 131 636 579 9 636 193 9 660 193 306 660 385 306 91 385 3...
output:
34177944
result:
ok 1 number(s): "34177944"
Test #58:
score: 0
Accepted
time: 434ms
memory: 85820kb
input:
24 200000 200000 54494 95899 48864 54494 9087 48864 76814 9087 100708 76814 33756 100708 31506 33756 96895 31506 39393 96895 146976 39393 135603 146976 16038 135603 110315 16038 21661 110315 147614 21661 44193 147614 136221 44193 149701 136221 167589 149701 180054 167589 127429 180054 53847 127429 4...
output:
935297177
result:
ok 1 number(s): "935297177"
Test #59:
score: 0
Accepted
time: 122ms
memory: 43504kb
input:
24 666 200000 666 287 287 62 62 256 256 235 235 18 18 137 137 329 329 627 627 467 467 420 420 370 370 264 264 255 255 227 227 427 427 457 457 447 447 402 402 323 323 292 292 646 646 261 261 32 32 352 352 95 666 119 119 366 366 591 591 200 200 365 365 298 298 486 486 656 656 303 303 190 190 573 573 1...
output:
306876928
result:
ok 1 number(s): "306876928"
Test #60:
score: 0
Accepted
time: 471ms
memory: 55972kb
input:
24 200000 200000 173123 96630 96630 9440 9440 197328 197328 65409 65409 5755 5755 110187 110187 134553 134553 25631 25631 133146 133146 27155 27155 178539 178539 8112 8112 47748 47748 181398 181398 56979 56979 180595 180595 15023 15023 5232 5232 98870 98870 164358 164358 155553 155553 103836 103836 ...
output:
414986138
result:
ok 1 number(s): "414986138"