/*
// is short or still long ???
hollwo_pelw's template(short)
// Note : -Dhollwo_pelw_local
*/
#include <bits/stdc++.h>
// #include <ext/pb_ds/assoc_container.hpp>
// #include <ext/pb_ds/trie_policy.hpp>
// #include <ext/rope>
using namespace std;
// using namespace __gnu_pbds;
// using namespace __gnu_cxx;
void FAST_IO(string filein = "", string fileout = "", string fileerr = ""){
if (fopen(filein.c_str(), "r")){
freopen(fileout.c_str(), "w", stdout);
freopen(filein.c_str(), "r", stdin);
#ifdef hollwo_pelw_local
freopen(fileerr.c_str(), "w", stderr);
#endif
}
cin.tie(0), cout.tie(0) -> sync_with_stdio(0);
}
void Hollwo_Pelw();
signed main(){
#ifdef hollwo_pelw_local
FAST_IO("input.inp", "output.out", "error.err");
auto start = chrono::steady_clock::now();
#else
FAST_IO("hollwo_pelw.inp", "hollwo_pelw.out");
#endif
int testcases = 1;
// cin >> testcases;
for (int test = 1; test <= testcases; test++){
// cout << "Case #" << test << ": ";
Hollwo_Pelw();
}
#ifdef hollwo_pelw_local
auto end = chrono::steady_clock::now();
cout << endl;
cout << "Excution time : " << chrono::duration_cast<chrono::milliseconds> (end - start).count() << "[ms]" << endl;
#endif
return 0;
}
const int N = 1e5 + 5, inf = 2e9;
vector<pair<int, int>> adj[N];
int n, m, q, dis[N], res[N];
struct data_t {
int d, u;
data_t (int _d = 0, int _u = 0)
: d(_d), u(_u) {}
bool operator < (const data_t &o) const {
return d > o.d;
}
};
priority_queue<data_t> pq;
int par[N], vis[N];
set<int> query[N];
inline int find(int u) {
return par[u] == u ? u : par[u] = find(par[u]);
}
inline void merge(int u, int v, int w) {
if ((u = find(u)) == (v = find(v)))
return ;
if (query[u].size() < query[v].size())
swap(u, v);
for (auto x : query[v]) {
if (query[u].count(x)) {
res[x] = w;
query[u].erase(x);
} else {
query[u].insert(x);
}
}
par[v] = u;
}
void Hollwo_Pelw() {
cin >> n >> m;
for (int u, v, w; m --; ) {
cin >> u >> v >> w;
adj[u].emplace_back(v, w);
adj[v].emplace_back(u, w);
}
fill(dis + 1, dis + n + 1, inf);
cin >> m;
for (int u; m --; )
cin >> u, pq.emplace(dis[u] = 0, u);
while (!pq.empty()) {
int u = pq.top().u, d = pq.top().d; pq.pop();
if (dis[u] != d) continue ;
for (auto ed : adj[u]) {
int v = ed.first, w = ed.second;
if (dis[v] > d + w)
pq.emplace(dis[v] = d + w, v);
}
}
cin >> q;
for (int i = 1, s, t; i <= q; i++) {
cin >> s >> t;
query[s].insert(i);
query[t].insert(i);
}
iota(par + 1, par + n + 1, 1);
vector<pair<int, int>> order;
for (int i = 1; i <= n; i++)
order.emplace_back(dis[i], i);
sort(order.rbegin(), order.rend());
for (auto it : order) {
int u = it.second;
vis[u] = 1;
for (auto ed : adj[u]) {
int v = ed.first;
if (vis[v]) merge(u, v, it.first);
}
}
for (int i = 1; i <= q; i++)
cout << res[i] << '\n';
}
Compilation message
plan.cpp: In function 'void FAST_IO(std::string, std::string, std::string)':
plan.cpp:18:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
18 | freopen(fileout.c_str(), "w", stdout);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
plan.cpp:19:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
19 | freopen(filein.c_str(), "r", stdin);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
7372 KB |
Output is correct |
2 |
Correct |
5 ms |
7500 KB |
Output is correct |
3 |
Correct |
4 ms |
7440 KB |
Output is correct |
4 |
Correct |
4 ms |
7372 KB |
Output is correct |
5 |
Correct |
5 ms |
7500 KB |
Output is correct |
6 |
Correct |
4 ms |
7500 KB |
Output is correct |
7 |
Correct |
4 ms |
7372 KB |
Output is correct |
8 |
Correct |
3 ms |
7372 KB |
Output is correct |
9 |
Correct |
4 ms |
7500 KB |
Output is correct |
10 |
Correct |
4 ms |
7500 KB |
Output is correct |
11 |
Correct |
4 ms |
7500 KB |
Output is correct |
12 |
Correct |
4 ms |
7500 KB |
Output is correct |
13 |
Correct |
4 ms |
7500 KB |
Output is correct |
14 |
Correct |
4 ms |
7500 KB |
Output is correct |
15 |
Correct |
4 ms |
7500 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
7372 KB |
Output is correct |
2 |
Correct |
5 ms |
7500 KB |
Output is correct |
3 |
Correct |
4 ms |
7440 KB |
Output is correct |
4 |
Correct |
4 ms |
7372 KB |
Output is correct |
5 |
Correct |
5 ms |
7500 KB |
Output is correct |
6 |
Correct |
4 ms |
7500 KB |
Output is correct |
7 |
Correct |
4 ms |
7372 KB |
Output is correct |
8 |
Correct |
3 ms |
7372 KB |
Output is correct |
9 |
Correct |
4 ms |
7500 KB |
Output is correct |
10 |
Correct |
4 ms |
7500 KB |
Output is correct |
11 |
Correct |
4 ms |
7500 KB |
Output is correct |
12 |
Correct |
4 ms |
7500 KB |
Output is correct |
13 |
Correct |
4 ms |
7500 KB |
Output is correct |
14 |
Correct |
4 ms |
7500 KB |
Output is correct |
15 |
Correct |
4 ms |
7500 KB |
Output is correct |
16 |
Correct |
201 ms |
23384 KB |
Output is correct |
17 |
Correct |
468 ms |
35996 KB |
Output is correct |
18 |
Correct |
31 ms |
10088 KB |
Output is correct |
19 |
Correct |
187 ms |
24332 KB |
Output is correct |
20 |
Correct |
484 ms |
36120 KB |
Output is correct |
21 |
Correct |
287 ms |
29168 KB |
Output is correct |
22 |
Correct |
129 ms |
23132 KB |
Output is correct |
23 |
Correct |
500 ms |
35960 KB |
Output is correct |
24 |
Correct |
498 ms |
35932 KB |
Output is correct |
25 |
Correct |
485 ms |
36144 KB |
Output is correct |
26 |
Correct |
178 ms |
24088 KB |
Output is correct |
27 |
Correct |
176 ms |
24128 KB |
Output is correct |
28 |
Correct |
185 ms |
24240 KB |
Output is correct |
29 |
Correct |
191 ms |
24196 KB |
Output is correct |
30 |
Correct |
182 ms |
24284 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
7372 KB |
Output is correct |
2 |
Correct |
4 ms |
7372 KB |
Output is correct |
3 |
Correct |
3 ms |
7372 KB |
Output is correct |
4 |
Correct |
3 ms |
7372 KB |
Output is correct |
5 |
Correct |
3 ms |
7372 KB |
Output is correct |
6 |
Correct |
4 ms |
7372 KB |
Output is correct |
7 |
Correct |
4 ms |
7372 KB |
Output is correct |
8 |
Correct |
4 ms |
7372 KB |
Output is correct |
9 |
Correct |
4 ms |
7372 KB |
Output is correct |
10 |
Correct |
3 ms |
7372 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
143 ms |
16296 KB |
Output is correct |
2 |
Correct |
315 ms |
24640 KB |
Output is correct |
3 |
Correct |
310 ms |
24612 KB |
Output is correct |
4 |
Correct |
65 ms |
12460 KB |
Output is correct |
5 |
Correct |
307 ms |
24612 KB |
Output is correct |
6 |
Correct |
329 ms |
24664 KB |
Output is correct |
7 |
Correct |
320 ms |
24680 KB |
Output is correct |
8 |
Correct |
322 ms |
24688 KB |
Output is correct |
9 |
Correct |
310 ms |
24608 KB |
Output is correct |
10 |
Correct |
289 ms |
24636 KB |
Output is correct |
11 |
Correct |
296 ms |
24656 KB |
Output is correct |
12 |
Correct |
300 ms |
24716 KB |
Output is correct |
13 |
Correct |
313 ms |
24584 KB |
Output is correct |
14 |
Correct |
306 ms |
24700 KB |
Output is correct |
15 |
Correct |
305 ms |
25512 KB |
Output is correct |
16 |
Correct |
309 ms |
24608 KB |
Output is correct |
17 |
Correct |
303 ms |
24704 KB |
Output is correct |
18 |
Correct |
333 ms |
24696 KB |
Output is correct |
19 |
Correct |
53 ms |
12468 KB |
Output is correct |
20 |
Correct |
314 ms |
24632 KB |
Output is correct |
21 |
Correct |
294 ms |
24440 KB |
Output is correct |
22 |
Correct |
63 ms |
14396 KB |
Output is correct |
23 |
Correct |
63 ms |
13016 KB |
Output is correct |
24 |
Correct |
64 ms |
14268 KB |
Output is correct |
25 |
Correct |
63 ms |
14392 KB |
Output is correct |
26 |
Correct |
65 ms |
13108 KB |
Output is correct |
27 |
Correct |
56 ms |
12528 KB |
Output is correct |
28 |
Correct |
65 ms |
14384 KB |
Output is correct |
29 |
Correct |
55 ms |
12540 KB |
Output is correct |
30 |
Correct |
62 ms |
14276 KB |
Output is correct |
31 |
Correct |
55 ms |
12568 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
7372 KB |
Output is correct |
2 |
Correct |
5 ms |
7500 KB |
Output is correct |
3 |
Correct |
4 ms |
7440 KB |
Output is correct |
4 |
Correct |
4 ms |
7372 KB |
Output is correct |
5 |
Correct |
5 ms |
7500 KB |
Output is correct |
6 |
Correct |
4 ms |
7500 KB |
Output is correct |
7 |
Correct |
4 ms |
7372 KB |
Output is correct |
8 |
Correct |
3 ms |
7372 KB |
Output is correct |
9 |
Correct |
4 ms |
7500 KB |
Output is correct |
10 |
Correct |
4 ms |
7500 KB |
Output is correct |
11 |
Correct |
4 ms |
7500 KB |
Output is correct |
12 |
Correct |
4 ms |
7500 KB |
Output is correct |
13 |
Correct |
4 ms |
7500 KB |
Output is correct |
14 |
Correct |
4 ms |
7500 KB |
Output is correct |
15 |
Correct |
4 ms |
7500 KB |
Output is correct |
16 |
Correct |
201 ms |
23384 KB |
Output is correct |
17 |
Correct |
468 ms |
35996 KB |
Output is correct |
18 |
Correct |
31 ms |
10088 KB |
Output is correct |
19 |
Correct |
187 ms |
24332 KB |
Output is correct |
20 |
Correct |
484 ms |
36120 KB |
Output is correct |
21 |
Correct |
287 ms |
29168 KB |
Output is correct |
22 |
Correct |
129 ms |
23132 KB |
Output is correct |
23 |
Correct |
500 ms |
35960 KB |
Output is correct |
24 |
Correct |
498 ms |
35932 KB |
Output is correct |
25 |
Correct |
485 ms |
36144 KB |
Output is correct |
26 |
Correct |
178 ms |
24088 KB |
Output is correct |
27 |
Correct |
176 ms |
24128 KB |
Output is correct |
28 |
Correct |
185 ms |
24240 KB |
Output is correct |
29 |
Correct |
191 ms |
24196 KB |
Output is correct |
30 |
Correct |
182 ms |
24284 KB |
Output is correct |
31 |
Correct |
4 ms |
7372 KB |
Output is correct |
32 |
Correct |
4 ms |
7372 KB |
Output is correct |
33 |
Correct |
3 ms |
7372 KB |
Output is correct |
34 |
Correct |
3 ms |
7372 KB |
Output is correct |
35 |
Correct |
3 ms |
7372 KB |
Output is correct |
36 |
Correct |
4 ms |
7372 KB |
Output is correct |
37 |
Correct |
4 ms |
7372 KB |
Output is correct |
38 |
Correct |
4 ms |
7372 KB |
Output is correct |
39 |
Correct |
4 ms |
7372 KB |
Output is correct |
40 |
Correct |
3 ms |
7372 KB |
Output is correct |
41 |
Correct |
143 ms |
16296 KB |
Output is correct |
42 |
Correct |
315 ms |
24640 KB |
Output is correct |
43 |
Correct |
310 ms |
24612 KB |
Output is correct |
44 |
Correct |
65 ms |
12460 KB |
Output is correct |
45 |
Correct |
307 ms |
24612 KB |
Output is correct |
46 |
Correct |
329 ms |
24664 KB |
Output is correct |
47 |
Correct |
320 ms |
24680 KB |
Output is correct |
48 |
Correct |
322 ms |
24688 KB |
Output is correct |
49 |
Correct |
310 ms |
24608 KB |
Output is correct |
50 |
Correct |
289 ms |
24636 KB |
Output is correct |
51 |
Correct |
296 ms |
24656 KB |
Output is correct |
52 |
Correct |
300 ms |
24716 KB |
Output is correct |
53 |
Correct |
313 ms |
24584 KB |
Output is correct |
54 |
Correct |
306 ms |
24700 KB |
Output is correct |
55 |
Correct |
305 ms |
25512 KB |
Output is correct |
56 |
Correct |
309 ms |
24608 KB |
Output is correct |
57 |
Correct |
303 ms |
24704 KB |
Output is correct |
58 |
Correct |
333 ms |
24696 KB |
Output is correct |
59 |
Correct |
53 ms |
12468 KB |
Output is correct |
60 |
Correct |
314 ms |
24632 KB |
Output is correct |
61 |
Correct |
294 ms |
24440 KB |
Output is correct |
62 |
Correct |
63 ms |
14396 KB |
Output is correct |
63 |
Correct |
63 ms |
13016 KB |
Output is correct |
64 |
Correct |
64 ms |
14268 KB |
Output is correct |
65 |
Correct |
63 ms |
14392 KB |
Output is correct |
66 |
Correct |
65 ms |
13108 KB |
Output is correct |
67 |
Correct |
56 ms |
12528 KB |
Output is correct |
68 |
Correct |
65 ms |
14384 KB |
Output is correct |
69 |
Correct |
55 ms |
12540 KB |
Output is correct |
70 |
Correct |
62 ms |
14276 KB |
Output is correct |
71 |
Correct |
55 ms |
12568 KB |
Output is correct |
72 |
Correct |
315 ms |
31768 KB |
Output is correct |
73 |
Correct |
477 ms |
36816 KB |
Output is correct |
74 |
Correct |
495 ms |
36908 KB |
Output is correct |
75 |
Correct |
534 ms |
36876 KB |
Output is correct |
76 |
Correct |
478 ms |
36796 KB |
Output is correct |
77 |
Correct |
495 ms |
36964 KB |
Output is correct |
78 |
Correct |
490 ms |
36772 KB |
Output is correct |
79 |
Correct |
482 ms |
36880 KB |
Output is correct |
80 |
Correct |
498 ms |
37076 KB |
Output is correct |
81 |
Correct |
482 ms |
36856 KB |
Output is correct |
82 |
Correct |
487 ms |
36960 KB |
Output is correct |
83 |
Correct |
513 ms |
36924 KB |
Output is correct |
84 |
Correct |
511 ms |
36776 KB |
Output is correct |
85 |
Correct |
496 ms |
36824 KB |
Output is correct |
86 |
Correct |
483 ms |
36800 KB |
Output is correct |
87 |
Correct |
478 ms |
36792 KB |
Output is correct |
88 |
Correct |
498 ms |
36916 KB |
Output is correct |
89 |
Correct |
213 ms |
25348 KB |
Output is correct |
90 |
Correct |
487 ms |
37004 KB |
Output is correct |
91 |
Correct |
449 ms |
36316 KB |
Output is correct |
92 |
Correct |
233 ms |
26600 KB |
Output is correct |
93 |
Correct |
302 ms |
49460 KB |
Output is correct |
94 |
Correct |
225 ms |
26348 KB |
Output is correct |
95 |
Correct |
228 ms |
26412 KB |
Output is correct |
96 |
Correct |
344 ms |
52996 KB |
Output is correct |
97 |
Correct |
263 ms |
27804 KB |
Output is correct |
98 |
Correct |
223 ms |
26264 KB |
Output is correct |
99 |
Correct |
233 ms |
27376 KB |
Output is correct |
100 |
Correct |
226 ms |
26424 KB |
Output is correct |