#include <bits/stdc++.h>
using namespace std;
#define ar array
#define sz(v) int(std::size(v))
using i64 = long long;
using pii = pair<int, int>;
bool mem_st;
const int N = 500, M = 1e5, Q = 1e6;
struct edge {
int i, j, w;
bool operator<(const edge e) const {
return w < e.w;
}
};
struct arr : ar<int, N-1> {
int sz = 0;
void pb(int x) { at(sz++) = x; }
auto end() { return begin()+sz; }
};
int n, m, q;
edge e[M];
arr pf[M+1], sf[M+1];
struct {
int p[N];
void init() {
for (int i = 0; i < n; i++) p[i] = i;
}
int find(int i) {
return p[i] == i ? i : p[i] = find(p[i]);
}
bool join(int i, int j) {
i = find(i), j = find(j);
if (i == j) return false;
p[i] = j;
return true;
}
} dsu;
bool mem_en;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> n >> m;
for (int h = 0; h < m; h++) {
cin >> e[h].i >> e[h].j >> e[h].w;
e[h].i--, e[h].j--;
}
sort(e, e+m);
for (int t = 1; t <= m; t++) {
auto ins = [&](int h) {
if (dsu.join(e[h].i, e[h].j))
pf[t].pb(h);
};
dsu.init();
ins(t-1);
for (int h : pf[t-1]) ins(h);
}
for (int t = m-1; t >= 0; t--) {
auto ins = [&](int h) {
if (dsu.join(e[h].i, e[h].j))
sf[t].pb(h);
};
dsu.init();
ins(t);
for (int h : sf[t+1]) ins(h);
}
cin >> q;
int t = 0;
while (q--) {
int x;
cin >> x;
while (t < m && e[t].w <= x) t++;
dsu.init();
int one = 0, two = 0; i64 cost = 0;
auto ins = [&](int h) {
if (dsu.join(e[h].i, e[h].j))
cost += abs(e[h].w - x);
};
while (one < pf[t].sz && two < sf[t].sz)
if (x-e[pf[t][one]].w < e[sf[t][two]].w-x) ins(pf[t][one++]);
else ins(sf[t][two++]);
while (one < pf[t].sz) ins(pf[t][one++]);
while (two < sf[t].sz) ins(sf[t][two++]);
cout << cost << '\n';
}
#if 0
cout << double(&mem_en - &mem_st) / (1 << 20) << '\n';
#endif
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
78 ms |
392548 KB |
Output is correct |
2 |
Correct |
39 ms |
392432 KB |
Output is correct |
3 |
Correct |
38 ms |
392456 KB |
Output is correct |
4 |
Correct |
40 ms |
392420 KB |
Output is correct |
5 |
Correct |
37 ms |
392544 KB |
Output is correct |
6 |
Correct |
37 ms |
392544 KB |
Output is correct |
7 |
Correct |
37 ms |
392488 KB |
Output is correct |
8 |
Correct |
39 ms |
392528 KB |
Output is correct |
9 |
Correct |
39 ms |
392528 KB |
Output is correct |
10 |
Correct |
37 ms |
392540 KB |
Output is correct |
11 |
Correct |
38 ms |
392532 KB |
Output is correct |
12 |
Correct |
38 ms |
392532 KB |
Output is correct |
13 |
Correct |
37 ms |
392320 KB |
Output is correct |
14 |
Correct |
42 ms |
392540 KB |
Output is correct |
15 |
Correct |
39 ms |
392460 KB |
Output is correct |
16 |
Correct |
37 ms |
392420 KB |
Output is correct |
17 |
Correct |
37 ms |
392456 KB |
Output is correct |
18 |
Correct |
37 ms |
392528 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
78 ms |
392548 KB |
Output is correct |
2 |
Correct |
39 ms |
392432 KB |
Output is correct |
3 |
Correct |
38 ms |
392456 KB |
Output is correct |
4 |
Correct |
40 ms |
392420 KB |
Output is correct |
5 |
Correct |
37 ms |
392544 KB |
Output is correct |
6 |
Correct |
37 ms |
392544 KB |
Output is correct |
7 |
Correct |
37 ms |
392488 KB |
Output is correct |
8 |
Correct |
39 ms |
392528 KB |
Output is correct |
9 |
Correct |
39 ms |
392528 KB |
Output is correct |
10 |
Correct |
37 ms |
392540 KB |
Output is correct |
11 |
Correct |
38 ms |
392532 KB |
Output is correct |
12 |
Correct |
38 ms |
392532 KB |
Output is correct |
13 |
Correct |
37 ms |
392320 KB |
Output is correct |
14 |
Correct |
42 ms |
392540 KB |
Output is correct |
15 |
Correct |
39 ms |
392460 KB |
Output is correct |
16 |
Correct |
37 ms |
392420 KB |
Output is correct |
17 |
Correct |
37 ms |
392456 KB |
Output is correct |
18 |
Correct |
37 ms |
392528 KB |
Output is correct |
19 |
Correct |
38 ms |
392532 KB |
Output is correct |
20 |
Correct |
1092 ms |
394716 KB |
Output is correct |
21 |
Correct |
538 ms |
394712 KB |
Output is correct |
22 |
Correct |
579 ms |
394704 KB |
Output is correct |
23 |
Correct |
613 ms |
394580 KB |
Output is correct |
24 |
Correct |
798 ms |
394716 KB |
Output is correct |
25 |
Correct |
1161 ms |
394832 KB |
Output is correct |
26 |
Correct |
1064 ms |
394712 KB |
Output is correct |
27 |
Correct |
1052 ms |
394708 KB |
Output is correct |
28 |
Correct |
1065 ms |
394712 KB |
Output is correct |
29 |
Correct |
1071 ms |
394716 KB |
Output is correct |
30 |
Correct |
1050 ms |
394836 KB |
Output is correct |
31 |
Correct |
1072 ms |
394832 KB |
Output is correct |
32 |
Correct |
1072 ms |
394832 KB |
Output is correct |
33 |
Correct |
1074 ms |
394832 KB |
Output is correct |
34 |
Correct |
1058 ms |
394820 KB |
Output is correct |
35 |
Correct |
1057 ms |
394708 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
38 ms |
392532 KB |
Output is correct |
2 |
Correct |
38 ms |
392740 KB |
Output is correct |
3 |
Correct |
38 ms |
392492 KB |
Output is correct |
4 |
Execution timed out |
5041 ms |
404168 KB |
Time limit exceeded |
5 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
78 ms |
392548 KB |
Output is correct |
2 |
Correct |
39 ms |
392432 KB |
Output is correct |
3 |
Correct |
38 ms |
392456 KB |
Output is correct |
4 |
Correct |
40 ms |
392420 KB |
Output is correct |
5 |
Correct |
37 ms |
392544 KB |
Output is correct |
6 |
Correct |
37 ms |
392544 KB |
Output is correct |
7 |
Correct |
37 ms |
392488 KB |
Output is correct |
8 |
Correct |
39 ms |
392528 KB |
Output is correct |
9 |
Correct |
39 ms |
392528 KB |
Output is correct |
10 |
Correct |
37 ms |
392540 KB |
Output is correct |
11 |
Correct |
38 ms |
392532 KB |
Output is correct |
12 |
Correct |
38 ms |
392532 KB |
Output is correct |
13 |
Correct |
37 ms |
392320 KB |
Output is correct |
14 |
Correct |
42 ms |
392540 KB |
Output is correct |
15 |
Correct |
39 ms |
392460 KB |
Output is correct |
16 |
Correct |
37 ms |
392420 KB |
Output is correct |
17 |
Correct |
37 ms |
392456 KB |
Output is correct |
18 |
Correct |
37 ms |
392528 KB |
Output is correct |
19 |
Correct |
37 ms |
392528 KB |
Output is correct |
20 |
Correct |
4961 ms |
414252 KB |
Output is correct |
21 |
Correct |
4366 ms |
414552 KB |
Output is correct |
22 |
Correct |
4879 ms |
414312 KB |
Output is correct |
23 |
Correct |
4819 ms |
414516 KB |
Output is correct |
24 |
Correct |
4995 ms |
414428 KB |
Output is correct |
25 |
Correct |
4962 ms |
415028 KB |
Output is correct |
26 |
Correct |
4720 ms |
414460 KB |
Output is correct |
27 |
Correct |
4654 ms |
414740 KB |
Output is correct |
28 |
Execution timed out |
5002 ms |
414324 KB |
Time limit exceeded |
29 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
78 ms |
392548 KB |
Output is correct |
2 |
Correct |
39 ms |
392432 KB |
Output is correct |
3 |
Correct |
38 ms |
392456 KB |
Output is correct |
4 |
Correct |
40 ms |
392420 KB |
Output is correct |
5 |
Correct |
37 ms |
392544 KB |
Output is correct |
6 |
Correct |
37 ms |
392544 KB |
Output is correct |
7 |
Correct |
37 ms |
392488 KB |
Output is correct |
8 |
Correct |
39 ms |
392528 KB |
Output is correct |
9 |
Correct |
39 ms |
392528 KB |
Output is correct |
10 |
Correct |
37 ms |
392540 KB |
Output is correct |
11 |
Correct |
38 ms |
392532 KB |
Output is correct |
12 |
Correct |
38 ms |
392532 KB |
Output is correct |
13 |
Correct |
37 ms |
392320 KB |
Output is correct |
14 |
Correct |
42 ms |
392540 KB |
Output is correct |
15 |
Correct |
39 ms |
392460 KB |
Output is correct |
16 |
Correct |
37 ms |
392420 KB |
Output is correct |
17 |
Correct |
37 ms |
392456 KB |
Output is correct |
18 |
Correct |
37 ms |
392528 KB |
Output is correct |
19 |
Correct |
38 ms |
392532 KB |
Output is correct |
20 |
Correct |
1092 ms |
394716 KB |
Output is correct |
21 |
Correct |
538 ms |
394712 KB |
Output is correct |
22 |
Correct |
579 ms |
394704 KB |
Output is correct |
23 |
Correct |
613 ms |
394580 KB |
Output is correct |
24 |
Correct |
798 ms |
394716 KB |
Output is correct |
25 |
Correct |
1161 ms |
394832 KB |
Output is correct |
26 |
Correct |
1064 ms |
394712 KB |
Output is correct |
27 |
Correct |
1052 ms |
394708 KB |
Output is correct |
28 |
Correct |
1065 ms |
394712 KB |
Output is correct |
29 |
Correct |
1071 ms |
394716 KB |
Output is correct |
30 |
Correct |
1050 ms |
394836 KB |
Output is correct |
31 |
Correct |
1072 ms |
394832 KB |
Output is correct |
32 |
Correct |
1072 ms |
394832 KB |
Output is correct |
33 |
Correct |
1074 ms |
394832 KB |
Output is correct |
34 |
Correct |
1058 ms |
394820 KB |
Output is correct |
35 |
Correct |
1057 ms |
394708 KB |
Output is correct |
36 |
Correct |
1568 ms |
395100 KB |
Output is correct |
37 |
Correct |
882 ms |
394904 KB |
Output is correct |
38 |
Correct |
971 ms |
395212 KB |
Output is correct |
39 |
Correct |
1058 ms |
395092 KB |
Output is correct |
40 |
Correct |
1298 ms |
395468 KB |
Output is correct |
41 |
Correct |
1702 ms |
395156 KB |
Output is correct |
42 |
Correct |
1584 ms |
395028 KB |
Output is correct |
43 |
Correct |
1584 ms |
395072 KB |
Output is correct |
44 |
Correct |
1252 ms |
394900 KB |
Output is correct |
45 |
Correct |
1163 ms |
394924 KB |
Output is correct |
46 |
Correct |
1568 ms |
394904 KB |
Output is correct |
47 |
Correct |
1566 ms |
395220 KB |
Output is correct |
48 |
Correct |
1585 ms |
395172 KB |
Output is correct |
49 |
Correct |
1549 ms |
395156 KB |
Output is correct |
50 |
Correct |
1114 ms |
395488 KB |
Output is correct |
51 |
Correct |
1185 ms |
395072 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
78 ms |
392548 KB |
Output is correct |
2 |
Correct |
39 ms |
392432 KB |
Output is correct |
3 |
Correct |
38 ms |
392456 KB |
Output is correct |
4 |
Correct |
40 ms |
392420 KB |
Output is correct |
5 |
Correct |
37 ms |
392544 KB |
Output is correct |
6 |
Correct |
37 ms |
392544 KB |
Output is correct |
7 |
Correct |
37 ms |
392488 KB |
Output is correct |
8 |
Correct |
39 ms |
392528 KB |
Output is correct |
9 |
Correct |
39 ms |
392528 KB |
Output is correct |
10 |
Correct |
37 ms |
392540 KB |
Output is correct |
11 |
Correct |
38 ms |
392532 KB |
Output is correct |
12 |
Correct |
38 ms |
392532 KB |
Output is correct |
13 |
Correct |
37 ms |
392320 KB |
Output is correct |
14 |
Correct |
42 ms |
392540 KB |
Output is correct |
15 |
Correct |
39 ms |
392460 KB |
Output is correct |
16 |
Correct |
37 ms |
392420 KB |
Output is correct |
17 |
Correct |
37 ms |
392456 KB |
Output is correct |
18 |
Correct |
37 ms |
392528 KB |
Output is correct |
19 |
Correct |
38 ms |
392532 KB |
Output is correct |
20 |
Correct |
1092 ms |
394716 KB |
Output is correct |
21 |
Correct |
538 ms |
394712 KB |
Output is correct |
22 |
Correct |
579 ms |
394704 KB |
Output is correct |
23 |
Correct |
613 ms |
394580 KB |
Output is correct |
24 |
Correct |
798 ms |
394716 KB |
Output is correct |
25 |
Correct |
1161 ms |
394832 KB |
Output is correct |
26 |
Correct |
1064 ms |
394712 KB |
Output is correct |
27 |
Correct |
1052 ms |
394708 KB |
Output is correct |
28 |
Correct |
1065 ms |
394712 KB |
Output is correct |
29 |
Correct |
1071 ms |
394716 KB |
Output is correct |
30 |
Correct |
1050 ms |
394836 KB |
Output is correct |
31 |
Correct |
1072 ms |
394832 KB |
Output is correct |
32 |
Correct |
1072 ms |
394832 KB |
Output is correct |
33 |
Correct |
1074 ms |
394832 KB |
Output is correct |
34 |
Correct |
1058 ms |
394820 KB |
Output is correct |
35 |
Correct |
1057 ms |
394708 KB |
Output is correct |
36 |
Correct |
38 ms |
392532 KB |
Output is correct |
37 |
Correct |
38 ms |
392740 KB |
Output is correct |
38 |
Correct |
38 ms |
392492 KB |
Output is correct |
39 |
Execution timed out |
5041 ms |
404168 KB |
Time limit exceeded |
40 |
Halted |
0 ms |
0 KB |
- |