#pragma region
#include "bits/stdc++.h"
using namespace std;
// Common Type shorteners and int128
using ll = long long; using ull = unsigned long long; using ld = long double;
using pii = pair<int, int>; using pll = pair<ll, ll>;
template <typename T> using vec = vector<T>;
template <typename K, typename V> using umap = unordered_map<K, V>; template <typename K> using uset = unordered_set<K>;
using vi = vec<int>; using vl = vec<ll>; using vpi = vec<pii>; using vpl = vec<pll>;
#ifdef __SIZEOF_INT128__
using int128 = __int128_t; using uint128 = __uint128_t;
#endif
template<typename I> string intStr(I x) { string ret; while (x > 0) { ret += (x % 10) + '0'; x /= 10; } reverse(ret.begin(), ret.end()); return ret; } // Int to string
// Shorthand Macros
#define INF 0x3f3f3f3f
#define LLINF 0x3f3f3f3f3f3f3f3f
#define mpr make_pair
#define mtup make_tuple
#define pb push_back
#define popcount __builtin_popcount
#define clz __builtin_clz
#define ctz __builtin_ctz
#define popcountll __builtin_popcountll
#define clzll __builtin_clzll
#define ctzll __builtin_ctzll
#define finline __attribute__((always_inline))
// Shorthand Function Macros
#define all(x) (x).begin(), (x).end()
#define rep(i, a, b) for (__typeof(a) i = a; i < b; i++)
#define reprev(i, a, b) for (__typeof(a) i = a; i > b; i--)
#define repi(a, b) rep(i, a, b)
#define repj(a, b) rep(j, a, b)
#define repk(a, b) rep(k, a, b)
#define Cmplt(type) bool operator<(const type &o) const
#define Cmpgt(type) bool operator>(const type &o) const
#define Cmpfn(name, type) bool name(const type &a, const type &b)
#define Inop(type) istream& operator>>(istream& in, type &o)
#define Outop(type) ostream& operator<<(ostream& out, type o)
#define Pow2(x) (1LL << (x))
#define scn(type, ...) type __VA_ARGS__; scan(__VA_ARGS__) // scn -> Short for SCan New
// Shorthand Functions
// template<typename T> inline int sz(const T &x) { return x.size(); }
template<typename T> inline void maxa(T& st, T v) { st = max(st, v); }
template<typename T> inline void mina(T& st, T v) { st = min(st, v); }
inline void setprec(ostream& out, int prec) { out << setprecision(prec) << fixed; }
// Out operators and printing for arrays and vectors
template <typename T> ostream& operator<<(ostream& out,vector<T> iter){out<<"[";for(auto t:iter){out<<t<<", ";}out<<"]";return out;}
template <typename T> string arrayStr(T *arr,int sz){string ret = "[";for(int i=0;i<sz;i++){ret+=to_string(arr[i])+", "; } return ret + "]";}
template <typename T> void printArray(T *arr,int sz){for(int i=0;i<sz;i++){cout<<arr[i]<<" "; } cout<<"\n";}
// I/O Operations
inline void scan(){}
template<typename F, typename... R> inline void scan(F &f,R&... r){cin>>f;scan(r...);}
template <typename F> inline void println(F t){cout<<t<<'\n';}
template<typename F, typename... R> inline void println(F f,R... r){cout<<f<<" ";println(r...);}
inline void print(){}
template<typename F, typename... R> inline void print(F f,R... r){cout<<f;print(r...);}
// Debugging
#define db(x) cout << (#x) << ": " << (x) << ", "
#define dblb(s) cout << "[" << (s) << "] "
#define dba(alias, x) cout << (alias) << ": " << (x) << ", "
template<typename F> inline string __generic_tostring(F f) { stringstream ss; ss << f; return ss.str(); }
template<typename F> inline string __join_comma(F f) {return __generic_tostring(f);}
template<typename F, typename... R> string __join_comma(F f, R... r) { return __generic_tostring(f) + ", " + __join_comma(r...); }
#define dbp(alias, ...) cout << (alias) << ": (" << __join_comma(__VA_ARGS__) << "), "
#define dbbin(x, n) cout << (#x) << ": " << bitset<n>(x) << ", "
#define dbarr(x, n) cout << (#x) << ": " << arrayStr((x), (n)) << ", "
#define dbln cout << endl;
#pragma endregion
const int MN = 1e5 + 1, LG = 18;
int N, Q,
A[MN], B[MN], lv[MN];
ll W,
weight[MN];
struct Ed {
int i, v;
ll w() { return weight[i]; }
};
vec<Ed> g[MN];
int sz[MN];
bool block[MN];
// centroid stuff
int gsz(int c, int p) {
sz[c] = 1;
for (auto to : g[c])
if (to.v != p && !block[to.v])
sz[c] += gsz(to.v, c);
return sz[c];
}
int gcent(int c, int p, int req) {
for (auto to : g[c])
if (to.v != p && !block[to.v] && sz[to.v] > req)
return gcent(to.v, c, req);
return c;
}
// wesley's iterative point update segtree
struct CombinePair {
using Data = pll;
using Lazy = pll;
const Data qdef = {0, 0};
Data merge(const Data &l, const Data &r) const {
if (l.first > r.first) {
return {l.first, max(l.second, r.first)};
}
return {r.first, max(r.second, l.first)};
}
Data applyLazy(const Data &l, const Lazy &r) const { return r; }
};
struct CombineSingle {
using Data = ll;
using Lazy = ll;
const Data qdef = -LLINF;
Data merge(const Data &l, const Data &r) const { return max(l, r); }
Data applyLazy(const Data &l, const Lazy &r) const { return r; }
};
template <class Combine> struct SegmentTreeBottomUp {
using Data = typename Combine::Data; using Lazy = typename Combine::Lazy;
Combine C; int N; vector<Data> TR;
void init(int N0, const Data &vdef) {
N = N0;
TR = vec<Data>(N * 2, C.qdef);
fill(TR.begin() + N, TR.end(), vdef);
for (int i = N - 1; i > 0; i--)
TR[i] = C.merge(TR[i * 2], TR[i * 2 + 1]);
}
void update(int i, const Lazy &v) {
for (i += N, TR[i] = C.applyLazy(TR[i], v); i /= 2;)
TR[i] = C.merge(TR[i * 2], TR[i * 2 + 1]);
}
Data query(int l, int r) {
Data ql = C.qdef, qr = C.qdef;
for (l += N, r += N; l <= r; l /= 2, r /= 2) {
if (l & 1) ql = C.merge(ql, TR[l++]);
if (!(r & 1)) qr = C.merge(TR[r--], qr);
}
return C.merge(ql, qr);
}
};
// Wesley's iterative lazy segtree
struct Combine {
using Data = ll;
using Lazy = ll;
const Data qdef = -LLINF;
const Lazy ldef = 0;
Data merge(const Data &l, const Data &r) const { return max(l, r); }
Data applyLazy(const Data &l, const Lazy &r) const { return l + r; }
Lazy getSegmentVal(const Lazy &v, int k) const { return v; }
Lazy mergeLazy(const Lazy &l, const Lazy &r) const { return l + r; }
};
template <class Combine> struct SegmentTreeLazyBottomUp {
using Data = typename Combine::Data; using Lazy = typename Combine::Lazy;
Combine C; int N, lgN; vector<Data> TR; vector<Lazy> LZ;
void apply(int i, const Lazy &v, int k) {
TR[i] = C.applyLazy(TR[i], C.getSegmentVal(v, k));
if (i < N) LZ[i] = C.mergeLazy(LZ[i], v);
}
void pushup(int i) {
for (int k = 2; i /= 2; k *= 2) {
TR[i] = C.merge(TR[i * 2], TR[i * 2 + 1]);
if (LZ[i] != C.ldef)
TR[i] = C.applyLazy(TR[i], C.getSegmentVal(LZ[i], k));
}
}
void propagate(int i) {
int h = lgN + 1, k = 1 << lgN, ii = i >> h;
for (; h > 0; ii = i >> --h, k /= 2) if (LZ[ii] != C.ldef) {
apply(ii * 2, LZ[ii], k); apply(ii * 2 + 1, LZ[ii], k); LZ[ii] = C.ldef;
}
}
void init(int n0, const Data vdef) {
N = n0;
lgN = __lg(N);
TR = vector<Data>(N * 2, C.qdef);
LZ = vector<Data>(N, C.ldef);
fill(TR.begin() + N, TR.end(), vdef);
for (int i = N - 1; i > 0; i--) TR[i] = C.merge(TR[i * 2], TR[i * 2 + 1]);
}
void update(int l, int r, const Lazy &v) {
int l0 = l += N, r0 = r += N, k = 1; propagate(l); propagate(r);
for (; l <= r; l /= 2, r /= 2, k *= 2) {
if (l & 1) apply(l++, v, k);
if (!(r & 1)) apply(r--, v, k);
}
pushup(l0); pushup(r0);
}
Data query(int l, int r) {
propagate(l += N); propagate(r += N); Data ql = C.qdef, qr = C.qdef;
for (; l <= r; l /= 2, r /= 2) {
if (l & 1) ql = C.merge(ql, TR[l++]);
if (!(r & 1)) qr = C.merge(TR[r--], qr);
}
return C.merge(ql, qr);
}
};
// maintaining paths that pass through centroid
int fst[LG][MN], lst[LG][MN];
struct DS {
int n, lg;
vi tour;
vector<pair<int, ll>> dis;
SegmentTreeLazyBottomUp<Combine> seg;
void dfs(int c, int p, ll cdis) {
tour.pb(c);
fst[lg][c] = tour.size() - 1;
dis.emplace_back(c, cdis);
for (auto to : g[c]) {
if (to.v != p && !block[to.v]) {
dfs(to.v, c, cdis + to.w());
}
}
lst[lg][c] = tour.size() - 1;
}
void init(int c, int lg0) {
// dfs and init tour
// dblb("init"); db(c); db(pre); dbln;
lg = lg0;
dfs(c, -1, 0);
// init seg
n = tour.size();
seg.init(n, -LLINF);
sort(all(dis));
for (auto p : dis) {
int id = fst[lg][p.first];
seg.update(id, id, LLINF + p.second); // to counteract the infinity (TM)
}
}
ll get(int node) {
return seg.query(fst[lg][node], lst[lg][node]);
}
int getBottomNode(int a, int b) {
ll da = lower_bound(all(dis), mpr(a, -1LL))->second, db = lower_bound(all(dis), mpr(b, -1LL))->second;
return da > db ? a : b;
}
void inc(int root, ll amt) {
seg.update(fst[lg][root], lst[lg][root], amt);
}
};
SegmentTreeBottomUp<CombineSingle> allDist;
SegmentTreeBottomUp<CombinePair> centDist[MN];
ll preAllDist[MN];
DS paths[MN];
int chForEdge[LG][MN];
vi hasEdge[MN]; // centroids that have that edge
void setupEdge(int c, int p, int cent, int chid) {
for (auto to : g[c]) {
if (to.v != p && !block[to.v]) {
hasEdge[to.i].pb(cent);
chForEdge[lv[cent]][to.i] = chid;
setupEdge(to.v, c, cent, chid);
}
}
}
// build centroid tree
void decomp(int c, int clv) {
gsz(c, -1);
if (sz[c] == 1) return;
int cent = gcent(c, -1, sz[c] / 2);
lv[cent] = clv;
paths[cent].init(cent, clv);
centDist[cent].init(g[cent].size(), mpr(0, 0));
repi(0, int(g[cent].size())) {
auto to = g[cent][i];
if (!block[to.v]) {
centDist[cent].update(i, mpr(paths[cent].get(to.v), 0));
setupEdge(to.v, cent, cent, i);
hasEdge[to.i].pb(cent);
chForEdge[clv][to.i] = i;
}
}
pll dia = centDist[cent].query(0, g[cent].size() - 1);
preAllDist[cent] = dia.first + dia.second;
allDist.update(cent - 1, preAllDist[cent]);
block[cent] = true;
for (auto to : g[cent]) {
if (!block[to.v])
decomp(to.v, clv + 1);
}
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
scan(N, Q, W);
repi(0, N - 1) {
scn(int, a, b);
scn(ll, w);
g[a].pb({i, b});
g[b].pb({i, a});
weight[i] = w;
A[i] = a;
B[i] = b;
}
// init
allDist.init(N, -LLINF);
decomp(1, 0);
ll lastAns = 0;
while (Q--) {
scn(ll, e, w);
e = (e + lastAns) % (N - 1);
w = (w + lastAns) % W;
// update centroid tree
ll dif = w - weight[e];
for (int cent : hasEdge[e]) {
int chid = chForEdge[lv[cent]][e], to = g[cent][chid].v;
auto &ps = paths[cent];
int bot = ps.getBottomNode(A[e], B[e]);
ps.inc(bot, dif);
centDist[cent].update(chid, mpr(ps.get(to), 0));
pll dia = centDist[cent].query(0, g[cent].size() - 1);
preAllDist[cent] = dia.first + dia.second;
allDist.update(cent - 1, preAllDist[cent]);
}
weight[e] = w;
// print ans
lastAns = allDist.query(0, N - 1);
println(lastAns);
}
return 0;
}
Compilation message
diameter.cpp:1:0: warning: ignoring #pragma region [-Wunknown-pragmas]
#pragma region
diameter.cpp:68:0: warning: ignoring #pragma endregion [-Wunknown-pragmas]
#pragma endregion
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
26 ms |
22400 KB |
Output is correct |
2 |
Correct |
17 ms |
22400 KB |
Output is correct |
3 |
Correct |
17 ms |
22400 KB |
Output is correct |
4 |
Correct |
20 ms |
22400 KB |
Output is correct |
5 |
Correct |
21 ms |
22400 KB |
Output is correct |
6 |
Correct |
18 ms |
22392 KB |
Output is correct |
7 |
Correct |
20 ms |
22400 KB |
Output is correct |
8 |
Correct |
18 ms |
22400 KB |
Output is correct |
9 |
Correct |
21 ms |
22400 KB |
Output is correct |
10 |
Correct |
18 ms |
22400 KB |
Output is correct |
11 |
Correct |
29 ms |
22400 KB |
Output is correct |
12 |
Correct |
18 ms |
22400 KB |
Output is correct |
13 |
Correct |
22 ms |
22400 KB |
Output is correct |
14 |
Correct |
21 ms |
22400 KB |
Output is correct |
15 |
Correct |
22 ms |
22392 KB |
Output is correct |
16 |
Correct |
18 ms |
22400 KB |
Output is correct |
17 |
Correct |
22 ms |
22392 KB |
Output is correct |
18 |
Correct |
18 ms |
22400 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
26 ms |
22400 KB |
Output is correct |
2 |
Correct |
17 ms |
22400 KB |
Output is correct |
3 |
Correct |
17 ms |
22400 KB |
Output is correct |
4 |
Correct |
20 ms |
22400 KB |
Output is correct |
5 |
Correct |
21 ms |
22400 KB |
Output is correct |
6 |
Correct |
18 ms |
22392 KB |
Output is correct |
7 |
Correct |
20 ms |
22400 KB |
Output is correct |
8 |
Correct |
18 ms |
22400 KB |
Output is correct |
9 |
Correct |
21 ms |
22400 KB |
Output is correct |
10 |
Correct |
18 ms |
22400 KB |
Output is correct |
11 |
Correct |
29 ms |
22400 KB |
Output is correct |
12 |
Correct |
18 ms |
22400 KB |
Output is correct |
13 |
Correct |
22 ms |
22400 KB |
Output is correct |
14 |
Correct |
21 ms |
22400 KB |
Output is correct |
15 |
Correct |
22 ms |
22392 KB |
Output is correct |
16 |
Correct |
18 ms |
22400 KB |
Output is correct |
17 |
Correct |
22 ms |
22392 KB |
Output is correct |
18 |
Correct |
18 ms |
22400 KB |
Output is correct |
19 |
Correct |
34 ms |
23032 KB |
Output is correct |
20 |
Correct |
34 ms |
23168 KB |
Output is correct |
21 |
Correct |
36 ms |
23168 KB |
Output is correct |
22 |
Correct |
38 ms |
23296 KB |
Output is correct |
23 |
Correct |
48 ms |
25600 KB |
Output is correct |
24 |
Correct |
61 ms |
26364 KB |
Output is correct |
25 |
Correct |
73 ms |
26872 KB |
Output is correct |
26 |
Correct |
97 ms |
27644 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
18 ms |
22272 KB |
Output is correct |
2 |
Correct |
19 ms |
22344 KB |
Output is correct |
3 |
Correct |
21 ms |
22392 KB |
Output is correct |
4 |
Correct |
27 ms |
22608 KB |
Output is correct |
5 |
Correct |
66 ms |
23416 KB |
Output is correct |
6 |
Correct |
18 ms |
22272 KB |
Output is correct |
7 |
Correct |
18 ms |
22400 KB |
Output is correct |
8 |
Correct |
18 ms |
22400 KB |
Output is correct |
9 |
Correct |
20 ms |
22400 KB |
Output is correct |
10 |
Correct |
35 ms |
22776 KB |
Output is correct |
11 |
Correct |
89 ms |
23928 KB |
Output is correct |
12 |
Correct |
21 ms |
23296 KB |
Output is correct |
13 |
Correct |
26 ms |
23424 KB |
Output is correct |
14 |
Correct |
26 ms |
23424 KB |
Output is correct |
15 |
Correct |
42 ms |
23680 KB |
Output is correct |
16 |
Correct |
112 ms |
24824 KB |
Output is correct |
17 |
Correct |
105 ms |
42576 KB |
Output is correct |
18 |
Correct |
108 ms |
42596 KB |
Output is correct |
19 |
Correct |
111 ms |
42600 KB |
Output is correct |
20 |
Correct |
140 ms |
42728 KB |
Output is correct |
21 |
Correct |
312 ms |
43240 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
35 ms |
23168 KB |
Output is correct |
2 |
Correct |
44 ms |
23168 KB |
Output is correct |
3 |
Correct |
127 ms |
23776 KB |
Output is correct |
4 |
Correct |
218 ms |
24440 KB |
Output is correct |
5 |
Correct |
56 ms |
31224 KB |
Output is correct |
6 |
Correct |
104 ms |
31352 KB |
Output is correct |
7 |
Correct |
309 ms |
31980 KB |
Output is correct |
8 |
Correct |
546 ms |
32760 KB |
Output is correct |
9 |
Correct |
270 ms |
72304 KB |
Output is correct |
10 |
Correct |
366 ms |
72560 KB |
Output is correct |
11 |
Correct |
715 ms |
72944 KB |
Output is correct |
12 |
Correct |
1004 ms |
73456 KB |
Output is correct |
13 |
Correct |
533 ms |
126920 KB |
Output is correct |
14 |
Correct |
575 ms |
126928 KB |
Output is correct |
15 |
Correct |
940 ms |
127220 KB |
Output is correct |
16 |
Correct |
1415 ms |
127636 KB |
Output is correct |
17 |
Correct |
2448 ms |
127620 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2443 ms |
114664 KB |
Output is correct |
2 |
Correct |
2512 ms |
117128 KB |
Output is correct |
3 |
Correct |
2454 ms |
115448 KB |
Output is correct |
4 |
Correct |
2770 ms |
117100 KB |
Output is correct |
5 |
Correct |
2354 ms |
111932 KB |
Output is correct |
6 |
Correct |
2058 ms |
90192 KB |
Output is correct |
7 |
Correct |
3423 ms |
136660 KB |
Output is correct |
8 |
Correct |
3553 ms |
136324 KB |
Output is correct |
9 |
Correct |
3327 ms |
136524 KB |
Output is correct |
10 |
Correct |
3181 ms |
135916 KB |
Output is correct |
11 |
Correct |
3221 ms |
130464 KB |
Output is correct |
12 |
Correct |
2880 ms |
101948 KB |
Output is correct |
13 |
Correct |
3531 ms |
146764 KB |
Output is correct |
14 |
Correct |
3399 ms |
146332 KB |
Output is correct |
15 |
Correct |
3659 ms |
146276 KB |
Output is correct |
16 |
Correct |
3381 ms |
145784 KB |
Output is correct |
17 |
Correct |
3426 ms |
139456 KB |
Output is correct |
18 |
Correct |
2903 ms |
106364 KB |
Output is correct |
19 |
Correct |
3651 ms |
146372 KB |
Output is correct |
20 |
Correct |
3558 ms |
146452 KB |
Output is correct |
21 |
Correct |
3497 ms |
146276 KB |
Output is correct |
22 |
Correct |
3753 ms |
145956 KB |
Output is correct |
23 |
Correct |
3683 ms |
139304 KB |
Output is correct |
24 |
Correct |
3115 ms |
106380 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
26 ms |
22400 KB |
Output is correct |
2 |
Correct |
17 ms |
22400 KB |
Output is correct |
3 |
Correct |
17 ms |
22400 KB |
Output is correct |
4 |
Correct |
20 ms |
22400 KB |
Output is correct |
5 |
Correct |
21 ms |
22400 KB |
Output is correct |
6 |
Correct |
18 ms |
22392 KB |
Output is correct |
7 |
Correct |
20 ms |
22400 KB |
Output is correct |
8 |
Correct |
18 ms |
22400 KB |
Output is correct |
9 |
Correct |
21 ms |
22400 KB |
Output is correct |
10 |
Correct |
18 ms |
22400 KB |
Output is correct |
11 |
Correct |
29 ms |
22400 KB |
Output is correct |
12 |
Correct |
18 ms |
22400 KB |
Output is correct |
13 |
Correct |
22 ms |
22400 KB |
Output is correct |
14 |
Correct |
21 ms |
22400 KB |
Output is correct |
15 |
Correct |
22 ms |
22392 KB |
Output is correct |
16 |
Correct |
18 ms |
22400 KB |
Output is correct |
17 |
Correct |
22 ms |
22392 KB |
Output is correct |
18 |
Correct |
18 ms |
22400 KB |
Output is correct |
19 |
Correct |
34 ms |
23032 KB |
Output is correct |
20 |
Correct |
34 ms |
23168 KB |
Output is correct |
21 |
Correct |
36 ms |
23168 KB |
Output is correct |
22 |
Correct |
38 ms |
23296 KB |
Output is correct |
23 |
Correct |
48 ms |
25600 KB |
Output is correct |
24 |
Correct |
61 ms |
26364 KB |
Output is correct |
25 |
Correct |
73 ms |
26872 KB |
Output is correct |
26 |
Correct |
97 ms |
27644 KB |
Output is correct |
27 |
Correct |
18 ms |
22272 KB |
Output is correct |
28 |
Correct |
19 ms |
22344 KB |
Output is correct |
29 |
Correct |
21 ms |
22392 KB |
Output is correct |
30 |
Correct |
27 ms |
22608 KB |
Output is correct |
31 |
Correct |
66 ms |
23416 KB |
Output is correct |
32 |
Correct |
18 ms |
22272 KB |
Output is correct |
33 |
Correct |
18 ms |
22400 KB |
Output is correct |
34 |
Correct |
18 ms |
22400 KB |
Output is correct |
35 |
Correct |
20 ms |
22400 KB |
Output is correct |
36 |
Correct |
35 ms |
22776 KB |
Output is correct |
37 |
Correct |
89 ms |
23928 KB |
Output is correct |
38 |
Correct |
21 ms |
23296 KB |
Output is correct |
39 |
Correct |
26 ms |
23424 KB |
Output is correct |
40 |
Correct |
26 ms |
23424 KB |
Output is correct |
41 |
Correct |
42 ms |
23680 KB |
Output is correct |
42 |
Correct |
112 ms |
24824 KB |
Output is correct |
43 |
Correct |
105 ms |
42576 KB |
Output is correct |
44 |
Correct |
108 ms |
42596 KB |
Output is correct |
45 |
Correct |
111 ms |
42600 KB |
Output is correct |
46 |
Correct |
140 ms |
42728 KB |
Output is correct |
47 |
Correct |
312 ms |
43240 KB |
Output is correct |
48 |
Correct |
35 ms |
23168 KB |
Output is correct |
49 |
Correct |
44 ms |
23168 KB |
Output is correct |
50 |
Correct |
127 ms |
23776 KB |
Output is correct |
51 |
Correct |
218 ms |
24440 KB |
Output is correct |
52 |
Correct |
56 ms |
31224 KB |
Output is correct |
53 |
Correct |
104 ms |
31352 KB |
Output is correct |
54 |
Correct |
309 ms |
31980 KB |
Output is correct |
55 |
Correct |
546 ms |
32760 KB |
Output is correct |
56 |
Correct |
270 ms |
72304 KB |
Output is correct |
57 |
Correct |
366 ms |
72560 KB |
Output is correct |
58 |
Correct |
715 ms |
72944 KB |
Output is correct |
59 |
Correct |
1004 ms |
73456 KB |
Output is correct |
60 |
Correct |
533 ms |
126920 KB |
Output is correct |
61 |
Correct |
575 ms |
126928 KB |
Output is correct |
62 |
Correct |
940 ms |
127220 KB |
Output is correct |
63 |
Correct |
1415 ms |
127636 KB |
Output is correct |
64 |
Correct |
2448 ms |
127620 KB |
Output is correct |
65 |
Correct |
2443 ms |
114664 KB |
Output is correct |
66 |
Correct |
2512 ms |
117128 KB |
Output is correct |
67 |
Correct |
2454 ms |
115448 KB |
Output is correct |
68 |
Correct |
2770 ms |
117100 KB |
Output is correct |
69 |
Correct |
2354 ms |
111932 KB |
Output is correct |
70 |
Correct |
2058 ms |
90192 KB |
Output is correct |
71 |
Correct |
3423 ms |
136660 KB |
Output is correct |
72 |
Correct |
3553 ms |
136324 KB |
Output is correct |
73 |
Correct |
3327 ms |
136524 KB |
Output is correct |
74 |
Correct |
3181 ms |
135916 KB |
Output is correct |
75 |
Correct |
3221 ms |
130464 KB |
Output is correct |
76 |
Correct |
2880 ms |
101948 KB |
Output is correct |
77 |
Correct |
3531 ms |
146764 KB |
Output is correct |
78 |
Correct |
3399 ms |
146332 KB |
Output is correct |
79 |
Correct |
3659 ms |
146276 KB |
Output is correct |
80 |
Correct |
3381 ms |
145784 KB |
Output is correct |
81 |
Correct |
3426 ms |
139456 KB |
Output is correct |
82 |
Correct |
2903 ms |
106364 KB |
Output is correct |
83 |
Correct |
3651 ms |
146372 KB |
Output is correct |
84 |
Correct |
3558 ms |
146452 KB |
Output is correct |
85 |
Correct |
3497 ms |
146276 KB |
Output is correct |
86 |
Correct |
3753 ms |
145956 KB |
Output is correct |
87 |
Correct |
3683 ms |
139304 KB |
Output is correct |
88 |
Correct |
3115 ms |
106380 KB |
Output is correct |
89 |
Correct |
2428 ms |
115508 KB |
Output is correct |
90 |
Correct |
3523 ms |
123356 KB |
Output is correct |
91 |
Correct |
3649 ms |
132548 KB |
Output is correct |
92 |
Correct |
3422 ms |
135348 KB |
Output is correct |
93 |
Correct |
3291 ms |
138756 KB |
Output is correct |
94 |
Correct |
3399 ms |
144880 KB |
Output is correct |
95 |
Correct |
3845 ms |
148096 KB |
Output is correct |
96 |
Correct |
4269 ms |
148316 KB |
Output is correct |
97 |
Correct |
4054 ms |
148264 KB |
Output is correct |
98 |
Correct |
3897 ms |
148900 KB |
Output is correct |
99 |
Correct |
3633 ms |
148200 KB |
Output is correct |
100 |
Correct |
3391 ms |
148156 KB |
Output is correct |