# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
502047 | 2022-01-05T07:08:41 Z | ismoilov | Birthday gift (IZhO18_treearray) | C++14 | 1087 ms | 87096 KB |
#include<bits/stdc++.h> using namespace std; typedef long long ll; #define IOS ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); #define all(x) (x).begin(), (x).end() #define fp(a,i,c) for(int (a) = (i); (a) < (c); (a)++) #define fpp(a,i,c) for(int (a) = (i); (a) <= (c); (a)++) #define fm(a,i,c) for(int (a) = (i); (a) > (c); (a)--) #define fmm(a,i,c) for(int (a) = (i); (a) >= (c); (a)--) const int maxx = 2e5+5; vector <int> g[maxx]; int a[maxx], d[maxx], lc[maxx][20]; set <int> A[maxx], B[maxx]; int n, m, q; void dfs(int v, int p = 0){ lc[v][0] = p; fpp(i,1,18) lc[v][i] = lc[lc[v][i-1]][i-1]; for(auto it : g[v]){ if(it != p){ d[it] = d[v]+1; dfs(it, v); } } } int lca(int u, int v){ if(d[u] < d[v]) swap(u, v); int k = d[u] - d[v]; fmm(i,18,0){ if(k>>i & 1) u = lc[u][i]; } if(u == v) return u; fmm(i,18,0){ if(lc[u][i] != lc[v][i]) u = lc[u][i], v = lc[v][i]; } return lc[u][0]; } void upd(int id, int v){ if(id > 1){ int y = lca(a[id], a[id-1]); A[y].erase(id-1); A[lca(v, a[id-1])].insert(id-1); } if(id < m){ int y = lca(a[id], a[id+1]); A[y].erase(id); A[lca(v, a[id+1])].insert(id); } B[a[id]].erase(id); B[v].insert(id); a[id] = v; } void get(int l, int r, int v){ auto it = B[v].lower_bound(l); if(it != B[v].end() && *it <= r){ cout << *it << " " << *it << "\n"; return; } it = A[v].lower_bound(l); if(it != A[v].end() && *it+1 <= r){ cout << *it << " " << *it+1 << "\n"; return; } cout << "-1 -1\n"; } void S() { // int n, m, q; cin >> n >> m >> q; fp(i,1,n){ int x, y; cin >> x >> y; g[x].push_back(y); g[y].push_back(x); } dfs(1); fpp(i,1,m) cin >> a[i]; fpp(i,1,m){ int x = lca(a[i], a[i+1]); // cout << i << " " << x << "\n"; if(i < m) A[x].insert(i); B[a[i]].insert(i); } /* fpp(i,1,n){ cout << i << " "; for(auto it : A[i]) cout << it << " "; cout << "\n"; }*/ while(q --){ int t; cin >> t; if(t == 1){ int id, v; cin >> id >> v; upd(id, v); } else{ int l, r, v; cin >> l >> r >> v; get(l, r, v); } } } int main() { IOS; S(); }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 13 ms | 23800 KB | n=5 |
2 | Correct | 12 ms | 23816 KB | n=100 |
3 | Correct | 14 ms | 23756 KB | n=100 |
4 | Correct | 15 ms | 23804 KB | n=100 |
5 | Correct | 12 ms | 23756 KB | n=100 |
6 | Correct | 13 ms | 23756 KB | n=100 |
7 | Correct | 13 ms | 23808 KB | n=100 |
8 | Correct | 12 ms | 23796 KB | n=100 |
9 | Correct | 15 ms | 23800 KB | n=100 |
10 | Correct | 11 ms | 23756 KB | n=100 |
11 | Correct | 12 ms | 23756 KB | n=100 |
12 | Correct | 11 ms | 23804 KB | n=100 |
13 | Correct | 11 ms | 23800 KB | n=100 |
14 | Correct | 12 ms | 23796 KB | n=100 |
15 | Correct | 12 ms | 23808 KB | n=100 |
16 | Correct | 13 ms | 23728 KB | n=100 |
17 | Correct | 13 ms | 23812 KB | n=100 |
18 | Correct | 12 ms | 23748 KB | n=100 |
19 | Correct | 13 ms | 23788 KB | n=100 |
20 | Correct | 16 ms | 23756 KB | n=100 |
21 | Correct | 11 ms | 23820 KB | n=100 |
22 | Correct | 12 ms | 23756 KB | n=100 |
23 | Correct | 12 ms | 23800 KB | n=100 |
24 | Correct | 12 ms | 23756 KB | n=100 |
25 | Correct | 13 ms | 23784 KB | n=100 |
26 | Correct | 13 ms | 23756 KB | n=12 |
27 | Correct | 13 ms | 23756 KB | n=100 |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 13 ms | 23800 KB | n=5 |
2 | Correct | 12 ms | 23816 KB | n=100 |
3 | Correct | 14 ms | 23756 KB | n=100 |
4 | Correct | 15 ms | 23804 KB | n=100 |
5 | Correct | 12 ms | 23756 KB | n=100 |
6 | Correct | 13 ms | 23756 KB | n=100 |
7 | Correct | 13 ms | 23808 KB | n=100 |
8 | Correct | 12 ms | 23796 KB | n=100 |
9 | Correct | 15 ms | 23800 KB | n=100 |
10 | Correct | 11 ms | 23756 KB | n=100 |
11 | Correct | 12 ms | 23756 KB | n=100 |
12 | Correct | 11 ms | 23804 KB | n=100 |
13 | Correct | 11 ms | 23800 KB | n=100 |
14 | Correct | 12 ms | 23796 KB | n=100 |
15 | Correct | 12 ms | 23808 KB | n=100 |
16 | Correct | 13 ms | 23728 KB | n=100 |
17 | Correct | 13 ms | 23812 KB | n=100 |
18 | Correct | 12 ms | 23748 KB | n=100 |
19 | Correct | 13 ms | 23788 KB | n=100 |
20 | Correct | 16 ms | 23756 KB | n=100 |
21 | Correct | 11 ms | 23820 KB | n=100 |
22 | Correct | 12 ms | 23756 KB | n=100 |
23 | Correct | 12 ms | 23800 KB | n=100 |
24 | Correct | 12 ms | 23756 KB | n=100 |
25 | Correct | 13 ms | 23784 KB | n=100 |
26 | Correct | 13 ms | 23756 KB | n=12 |
27 | Correct | 13 ms | 23756 KB | n=100 |
28 | Correct | 13 ms | 23944 KB | n=500 |
29 | Correct | 12 ms | 23944 KB | n=500 |
30 | Correct | 13 ms | 23808 KB | n=500 |
31 | Correct | 12 ms | 23876 KB | n=500 |
32 | Correct | 13 ms | 23880 KB | n=500 |
33 | Correct | 13 ms | 23932 KB | n=500 |
34 | Correct | 12 ms | 23808 KB | n=500 |
35 | Correct | 12 ms | 23884 KB | n=500 |
36 | Correct | 12 ms | 23808 KB | n=500 |
37 | Correct | 14 ms | 23804 KB | n=500 |
38 | Correct | 13 ms | 23876 KB | n=500 |
39 | Correct | 12 ms | 23896 KB | n=500 |
40 | Correct | 12 ms | 23940 KB | n=500 |
41 | Correct | 12 ms | 23840 KB | n=500 |
42 | Correct | 13 ms | 23868 KB | n=500 |
43 | Correct | 15 ms | 23804 KB | n=500 |
44 | Correct | 13 ms | 23928 KB | n=500 |
45 | Correct | 13 ms | 23884 KB | n=500 |
46 | Correct | 12 ms | 23944 KB | n=500 |
47 | Correct | 13 ms | 23956 KB | n=500 |
48 | Correct | 13 ms | 23808 KB | n=500 |
49 | Correct | 13 ms | 23884 KB | n=500 |
50 | Correct | 15 ms | 23820 KB | n=500 |
51 | Correct | 15 ms | 23884 KB | n=500 |
52 | Correct | 15 ms | 24004 KB | n=500 |
53 | Correct | 14 ms | 23876 KB | n=500 |
54 | Correct | 13 ms | 23936 KB | n=500 |
55 | Correct | 13 ms | 23848 KB | n=278 |
56 | Correct | 13 ms | 23884 KB | n=500 |
57 | Correct | 13 ms | 23944 KB | n=500 |
58 | Correct | 13 ms | 23812 KB | n=500 |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 13 ms | 23800 KB | n=5 |
2 | Correct | 12 ms | 23816 KB | n=100 |
3 | Correct | 14 ms | 23756 KB | n=100 |
4 | Correct | 15 ms | 23804 KB | n=100 |
5 | Correct | 12 ms | 23756 KB | n=100 |
6 | Correct | 13 ms | 23756 KB | n=100 |
7 | Correct | 13 ms | 23808 KB | n=100 |
8 | Correct | 12 ms | 23796 KB | n=100 |
9 | Correct | 15 ms | 23800 KB | n=100 |
10 | Correct | 11 ms | 23756 KB | n=100 |
11 | Correct | 12 ms | 23756 KB | n=100 |
12 | Correct | 11 ms | 23804 KB | n=100 |
13 | Correct | 11 ms | 23800 KB | n=100 |
14 | Correct | 12 ms | 23796 KB | n=100 |
15 | Correct | 12 ms | 23808 KB | n=100 |
16 | Correct | 13 ms | 23728 KB | n=100 |
17 | Correct | 13 ms | 23812 KB | n=100 |
18 | Correct | 12 ms | 23748 KB | n=100 |
19 | Correct | 13 ms | 23788 KB | n=100 |
20 | Correct | 16 ms | 23756 KB | n=100 |
21 | Correct | 11 ms | 23820 KB | n=100 |
22 | Correct | 12 ms | 23756 KB | n=100 |
23 | Correct | 12 ms | 23800 KB | n=100 |
24 | Correct | 12 ms | 23756 KB | n=100 |
25 | Correct | 13 ms | 23784 KB | n=100 |
26 | Correct | 13 ms | 23756 KB | n=12 |
27 | Correct | 13 ms | 23756 KB | n=100 |
28 | Correct | 13 ms | 23944 KB | n=500 |
29 | Correct | 12 ms | 23944 KB | n=500 |
30 | Correct | 13 ms | 23808 KB | n=500 |
31 | Correct | 12 ms | 23876 KB | n=500 |
32 | Correct | 13 ms | 23880 KB | n=500 |
33 | Correct | 13 ms | 23932 KB | n=500 |
34 | Correct | 12 ms | 23808 KB | n=500 |
35 | Correct | 12 ms | 23884 KB | n=500 |
36 | Correct | 12 ms | 23808 KB | n=500 |
37 | Correct | 14 ms | 23804 KB | n=500 |
38 | Correct | 13 ms | 23876 KB | n=500 |
39 | Correct | 12 ms | 23896 KB | n=500 |
40 | Correct | 12 ms | 23940 KB | n=500 |
41 | Correct | 12 ms | 23840 KB | n=500 |
42 | Correct | 13 ms | 23868 KB | n=500 |
43 | Correct | 15 ms | 23804 KB | n=500 |
44 | Correct | 13 ms | 23928 KB | n=500 |
45 | Correct | 13 ms | 23884 KB | n=500 |
46 | Correct | 12 ms | 23944 KB | n=500 |
47 | Correct | 13 ms | 23956 KB | n=500 |
48 | Correct | 13 ms | 23808 KB | n=500 |
49 | Correct | 13 ms | 23884 KB | n=500 |
50 | Correct | 15 ms | 23820 KB | n=500 |
51 | Correct | 15 ms | 23884 KB | n=500 |
52 | Correct | 15 ms | 24004 KB | n=500 |
53 | Correct | 14 ms | 23876 KB | n=500 |
54 | Correct | 13 ms | 23936 KB | n=500 |
55 | Correct | 13 ms | 23848 KB | n=278 |
56 | Correct | 13 ms | 23884 KB | n=500 |
57 | Correct | 13 ms | 23944 KB | n=500 |
58 | Correct | 13 ms | 23812 KB | n=500 |
59 | Correct | 15 ms | 24264 KB | n=2000 |
60 | Correct | 19 ms | 24388 KB | n=2000 |
61 | Correct | 17 ms | 24268 KB | n=2000 |
62 | Correct | 16 ms | 24324 KB | n=2000 |
63 | Correct | 15 ms | 24268 KB | n=2000 |
64 | Correct | 16 ms | 24276 KB | n=2000 |
65 | Correct | 15 ms | 24264 KB | n=2000 |
66 | Correct | 16 ms | 24396 KB | n=2000 |
67 | Correct | 16 ms | 24268 KB | n=2000 |
68 | Correct | 15 ms | 24316 KB | n=2000 |
69 | Correct | 14 ms | 24260 KB | n=2000 |
70 | Correct | 14 ms | 24276 KB | n=2000 |
71 | Correct | 19 ms | 24260 KB | n=2000 |
72 | Correct | 17 ms | 24184 KB | n=2000 |
73 | Correct | 15 ms | 24276 KB | n=2000 |
74 | Correct | 14 ms | 24200 KB | n=1844 |
75 | Correct | 14 ms | 24264 KB | n=2000 |
76 | Correct | 15 ms | 24196 KB | n=2000 |
77 | Correct | 15 ms | 24260 KB | n=2000 |
78 | Correct | 16 ms | 24260 KB | n=2000 |
79 | Correct | 16 ms | 24268 KB | n=2000 |
80 | Correct | 19 ms | 24268 KB | n=2000 |
81 | Correct | 15 ms | 24292 KB | n=2000 |
82 | Correct | 15 ms | 24196 KB | n=2000 |
83 | Correct | 14 ms | 24260 KB | n=2000 |
84 | Correct | 15 ms | 24264 KB | n=2000 |
85 | Correct | 20 ms | 24268 KB | n=2000 |
86 | Correct | 19 ms | 24312 KB | n=2000 |
87 | Correct | 15 ms | 24260 KB | n=2000 |
88 | Correct | 15 ms | 24400 KB | n=2000 |
89 | Correct | 17 ms | 24396 KB | n=2000 |
90 | Correct | 17 ms | 24388 KB | n=2000 |
91 | Correct | 17 ms | 24296 KB | n=2000 |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 13 ms | 23800 KB | n=5 |
2 | Correct | 12 ms | 23816 KB | n=100 |
3 | Correct | 14 ms | 23756 KB | n=100 |
4 | Correct | 15 ms | 23804 KB | n=100 |
5 | Correct | 12 ms | 23756 KB | n=100 |
6 | Correct | 13 ms | 23756 KB | n=100 |
7 | Correct | 13 ms | 23808 KB | n=100 |
8 | Correct | 12 ms | 23796 KB | n=100 |
9 | Correct | 15 ms | 23800 KB | n=100 |
10 | Correct | 11 ms | 23756 KB | n=100 |
11 | Correct | 12 ms | 23756 KB | n=100 |
12 | Correct | 11 ms | 23804 KB | n=100 |
13 | Correct | 11 ms | 23800 KB | n=100 |
14 | Correct | 12 ms | 23796 KB | n=100 |
15 | Correct | 12 ms | 23808 KB | n=100 |
16 | Correct | 13 ms | 23728 KB | n=100 |
17 | Correct | 13 ms | 23812 KB | n=100 |
18 | Correct | 12 ms | 23748 KB | n=100 |
19 | Correct | 13 ms | 23788 KB | n=100 |
20 | Correct | 16 ms | 23756 KB | n=100 |
21 | Correct | 11 ms | 23820 KB | n=100 |
22 | Correct | 12 ms | 23756 KB | n=100 |
23 | Correct | 12 ms | 23800 KB | n=100 |
24 | Correct | 12 ms | 23756 KB | n=100 |
25 | Correct | 13 ms | 23784 KB | n=100 |
26 | Correct | 13 ms | 23756 KB | n=12 |
27 | Correct | 13 ms | 23756 KB | n=100 |
28 | Correct | 13 ms | 23944 KB | n=500 |
29 | Correct | 12 ms | 23944 KB | n=500 |
30 | Correct | 13 ms | 23808 KB | n=500 |
31 | Correct | 12 ms | 23876 KB | n=500 |
32 | Correct | 13 ms | 23880 KB | n=500 |
33 | Correct | 13 ms | 23932 KB | n=500 |
34 | Correct | 12 ms | 23808 KB | n=500 |
35 | Correct | 12 ms | 23884 KB | n=500 |
36 | Correct | 12 ms | 23808 KB | n=500 |
37 | Correct | 14 ms | 23804 KB | n=500 |
38 | Correct | 13 ms | 23876 KB | n=500 |
39 | Correct | 12 ms | 23896 KB | n=500 |
40 | Correct | 12 ms | 23940 KB | n=500 |
41 | Correct | 12 ms | 23840 KB | n=500 |
42 | Correct | 13 ms | 23868 KB | n=500 |
43 | Correct | 15 ms | 23804 KB | n=500 |
44 | Correct | 13 ms | 23928 KB | n=500 |
45 | Correct | 13 ms | 23884 KB | n=500 |
46 | Correct | 12 ms | 23944 KB | n=500 |
47 | Correct | 13 ms | 23956 KB | n=500 |
48 | Correct | 13 ms | 23808 KB | n=500 |
49 | Correct | 13 ms | 23884 KB | n=500 |
50 | Correct | 15 ms | 23820 KB | n=500 |
51 | Correct | 15 ms | 23884 KB | n=500 |
52 | Correct | 15 ms | 24004 KB | n=500 |
53 | Correct | 14 ms | 23876 KB | n=500 |
54 | Correct | 13 ms | 23936 KB | n=500 |
55 | Correct | 13 ms | 23848 KB | n=278 |
56 | Correct | 13 ms | 23884 KB | n=500 |
57 | Correct | 13 ms | 23944 KB | n=500 |
58 | Correct | 13 ms | 23812 KB | n=500 |
59 | Correct | 15 ms | 24264 KB | n=2000 |
60 | Correct | 19 ms | 24388 KB | n=2000 |
61 | Correct | 17 ms | 24268 KB | n=2000 |
62 | Correct | 16 ms | 24324 KB | n=2000 |
63 | Correct | 15 ms | 24268 KB | n=2000 |
64 | Correct | 16 ms | 24276 KB | n=2000 |
65 | Correct | 15 ms | 24264 KB | n=2000 |
66 | Correct | 16 ms | 24396 KB | n=2000 |
67 | Correct | 16 ms | 24268 KB | n=2000 |
68 | Correct | 15 ms | 24316 KB | n=2000 |
69 | Correct | 14 ms | 24260 KB | n=2000 |
70 | Correct | 14 ms | 24276 KB | n=2000 |
71 | Correct | 19 ms | 24260 KB | n=2000 |
72 | Correct | 17 ms | 24184 KB | n=2000 |
73 | Correct | 15 ms | 24276 KB | n=2000 |
74 | Correct | 14 ms | 24200 KB | n=1844 |
75 | Correct | 14 ms | 24264 KB | n=2000 |
76 | Correct | 15 ms | 24196 KB | n=2000 |
77 | Correct | 15 ms | 24260 KB | n=2000 |
78 | Correct | 16 ms | 24260 KB | n=2000 |
79 | Correct | 16 ms | 24268 KB | n=2000 |
80 | Correct | 19 ms | 24268 KB | n=2000 |
81 | Correct | 15 ms | 24292 KB | n=2000 |
82 | Correct | 15 ms | 24196 KB | n=2000 |
83 | Correct | 14 ms | 24260 KB | n=2000 |
84 | Correct | 15 ms | 24264 KB | n=2000 |
85 | Correct | 20 ms | 24268 KB | n=2000 |
86 | Correct | 19 ms | 24312 KB | n=2000 |
87 | Correct | 15 ms | 24260 KB | n=2000 |
88 | Correct | 15 ms | 24400 KB | n=2000 |
89 | Correct | 17 ms | 24396 KB | n=2000 |
90 | Correct | 17 ms | 24388 KB | n=2000 |
91 | Correct | 17 ms | 24296 KB | n=2000 |
92 | Correct | 727 ms | 74468 KB | n=200000 |
93 | Correct | 998 ms | 80972 KB | n=200000 |
94 | Correct | 979 ms | 85424 KB | n=200000 |
95 | Correct | 670 ms | 74296 KB | n=200000 |
96 | Correct | 638 ms | 74348 KB | n=200000 |
97 | Correct | 949 ms | 79788 KB | n=200000 |
98 | Correct | 710 ms | 74400 KB | n=200000 |
99 | Correct | 901 ms | 74568 KB | n=200000 |
100 | Correct | 674 ms | 74428 KB | n=200000 |
101 | Correct | 903 ms | 87096 KB | n=200000 |
102 | Correct | 424 ms | 75460 KB | n=200000 |
103 | Correct | 418 ms | 75628 KB | n=200000 |
104 | Correct | 436 ms | 75472 KB | n=200000 |
105 | Correct | 414 ms | 75940 KB | n=200000 |
106 | Correct | 435 ms | 75940 KB | n=200000 |
107 | Correct | 403 ms | 75972 KB | n=200000 |
108 | Correct | 765 ms | 74400 KB | n=200000 |
109 | Correct | 765 ms | 74540 KB | n=200000 |
110 | Correct | 746 ms | 74352 KB | n=200000 |
111 | Correct | 660 ms | 73784 KB | n=200000 |
112 | Correct | 887 ms | 85688 KB | n=200000 |
113 | Correct | 978 ms | 79564 KB | n=200000 |
114 | Correct | 714 ms | 73812 KB | n=200000 |
115 | Correct | 1087 ms | 76844 KB | n=200000 |
116 | Correct | 721 ms | 74496 KB | n=200000 |
117 | Correct | 933 ms | 86248 KB | n=200000 |
118 | Correct | 970 ms | 78216 KB | n=200000 |
119 | Correct | 679 ms | 74516 KB | n=200000 |
120 | Correct | 935 ms | 86244 KB | n=200000 |
121 | Correct | 886 ms | 86140 KB | n=200000 |
122 | Correct | 884 ms | 86424 KB | n=200000 |
123 | Correct | 430 ms | 75720 KB | n=200000 |
124 | Correct | 226 ms | 39024 KB | n=25264 |