#include <bits/stdc++.h>
#define ff first
#define ss second
#define pb push_back
#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()
#define int long long
using namespace std;
const int N = 2e6 + 10;
int d[N], ans[N], par[N], sz[N];
vector < pair <int,int> > g[N];
set <int> s[N];
int n;
int dji(int f, int s){
vector <int> dist(n + 1, -1e9);
set <pair <int,int> > st;
st.insert({0, f});
dist[f] = d[f];
while (!st.empty()) {
int v = (--st.end())->second;
st.erase (--st.end());
for (size_t j=0; j< g[v].size(); ++j) {
int to = g[v][j].first;
if (min(dist[v], d[to]) > dist[to]) {
st.erase (make_pair (d[to], to));
if(to == s){
return min(dist[v], d[to]);
}
dist[to] = min(dist[v], d[to]);
st.insert (make_pair (d[to], to));
}
}
}
}
int find(int a){
if(par[a] == a)
return a;
return par[a] = find(par[a]);
}
void connect(int a, int b, int w){
a = find(a);
b = find(b);
if(a == b)return;
if(a != b){
if(sz[a] < sz[b])
swap(a,b);
par[b] = a;
sz[a] += sz[b];
}
if ((int) s[a].size() > (int) s[b].size()) swap(s[a] , s[b]);
for (int x : s[b])
{
if (s[a].find(x) != s[a].end())
{
ans[x] = w;
s[a].erase(x);
}
else
{
s[a].insert(x);
}
}
}
main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
memset(d, 0x3f3f, sizeof(d));
int m;
cin >> n >> m;
for(int i = 1; i <= n; i++){
par[i] = i;
sz[i] = 1;
}
for(int i = 0; i < m; i++){
int a, b, c;
cin >> a >> b >> c;
g[a].pb({b, c});
g[b].pb({a, c});
}
int k;
cin >> k;
set <pair <int,int> > st;
for(int i = 0; i < k; i++){
int a;
cin >> a;
st.insert({0, a});
d[a] = 0;
}
while (!st.empty()) {
int v = st.begin()->second;
st.erase (st.begin());
for (size_t j=0; j<g[v].size(); ++j) {
int to = g[v][j].first,
len = g[v][j].second;
if (d[v] + len < d[to]) {
d[to] = d[v] + len;
st.insert (make_pair (d[to], to));
}
}
}
vector <pair <int,int> > vp;
for(int i = 1; i <= n; i++){
vp.pb({d[i], i});
}
int q;
cin >> q;
for(int i = 1; i <= q; i++){
int a, b;
cin >> a >> b;
s[a].insert(i);
s[b].insert(i);
}
sort(rall(vp));
for (auto x : vp)
{
int w = x.first , u = x.second;
for (auto adj : g[u])
{
int v = adj.ff;
if (d[v] >= w) connect(u , v , w);
}
}
for(int i = 1; i <= q; i++)cout << ans[i] << endl;
}
Compilation message
plan.cpp:68:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
68 | main(){
| ^~~~
plan.cpp: In function 'long long int dji(long long int, long long int)':
plan.cpp:17:31: warning: control reaches end of non-void function [-Wreturn-type]
17 | vector <int> dist(n + 1, -1e9);
| ^
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
67 ms |
156872 KB |
Output is correct |
2 |
Correct |
142 ms |
180400 KB |
Output is correct |
3 |
Correct |
141 ms |
180512 KB |
Output is correct |
4 |
Correct |
71 ms |
156876 KB |
Output is correct |
5 |
Correct |
141 ms |
180416 KB |
Output is correct |
6 |
Correct |
132 ms |
180376 KB |
Output is correct |
7 |
Correct |
70 ms |
156876 KB |
Output is correct |
8 |
Correct |
74 ms |
156840 KB |
Output is correct |
9 |
Correct |
72 ms |
157016 KB |
Output is correct |
10 |
Correct |
72 ms |
157132 KB |
Output is correct |
11 |
Correct |
85 ms |
157136 KB |
Output is correct |
12 |
Correct |
135 ms |
180384 KB |
Output is correct |
13 |
Correct |
72 ms |
157336 KB |
Output is correct |
14 |
Correct |
78 ms |
157116 KB |
Output is correct |
15 |
Correct |
74 ms |
157112 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
67 ms |
156872 KB |
Output is correct |
2 |
Correct |
142 ms |
180400 KB |
Output is correct |
3 |
Correct |
141 ms |
180512 KB |
Output is correct |
4 |
Correct |
71 ms |
156876 KB |
Output is correct |
5 |
Correct |
141 ms |
180416 KB |
Output is correct |
6 |
Correct |
132 ms |
180376 KB |
Output is correct |
7 |
Correct |
70 ms |
156876 KB |
Output is correct |
8 |
Correct |
74 ms |
156840 KB |
Output is correct |
9 |
Correct |
72 ms |
157016 KB |
Output is correct |
10 |
Correct |
72 ms |
157132 KB |
Output is correct |
11 |
Correct |
85 ms |
157136 KB |
Output is correct |
12 |
Correct |
135 ms |
180384 KB |
Output is correct |
13 |
Correct |
72 ms |
157336 KB |
Output is correct |
14 |
Correct |
78 ms |
157116 KB |
Output is correct |
15 |
Correct |
74 ms |
157112 KB |
Output is correct |
16 |
Runtime error |
1147 ms |
524288 KB |
Execution killed with signal 9 |
17 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
72 ms |
156900 KB |
Output is correct |
2 |
Correct |
69 ms |
156872 KB |
Output is correct |
3 |
Correct |
79 ms |
156944 KB |
Output is correct |
4 |
Correct |
71 ms |
156876 KB |
Output is correct |
5 |
Correct |
72 ms |
156856 KB |
Output is correct |
6 |
Correct |
69 ms |
156884 KB |
Output is correct |
7 |
Correct |
72 ms |
156812 KB |
Output is correct |
8 |
Correct |
73 ms |
156780 KB |
Output is correct |
9 |
Correct |
71 ms |
156944 KB |
Output is correct |
10 |
Correct |
76 ms |
156816 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
271 ms |
173752 KB |
Output is correct |
2 |
Correct |
550 ms |
191572 KB |
Output is correct |
3 |
Correct |
521 ms |
191508 KB |
Output is correct |
4 |
Correct |
157 ms |
169456 KB |
Output is correct |
5 |
Correct |
521 ms |
189876 KB |
Output is correct |
6 |
Correct |
516 ms |
191448 KB |
Output is correct |
7 |
Correct |
511 ms |
191436 KB |
Output is correct |
8 |
Correct |
517 ms |
189916 KB |
Output is correct |
9 |
Correct |
523 ms |
189864 KB |
Output is correct |
10 |
Correct |
528 ms |
191408 KB |
Output is correct |
11 |
Correct |
533 ms |
191512 KB |
Output is correct |
12 |
Correct |
560 ms |
191684 KB |
Output is correct |
13 |
Correct |
539 ms |
191384 KB |
Output is correct |
14 |
Correct |
525 ms |
190044 KB |
Output is correct |
15 |
Correct |
532 ms |
191820 KB |
Output is correct |
16 |
Correct |
540 ms |
190000 KB |
Output is correct |
17 |
Correct |
529 ms |
190004 KB |
Output is correct |
18 |
Correct |
543 ms |
191560 KB |
Output is correct |
19 |
Correct |
149 ms |
165220 KB |
Output is correct |
20 |
Correct |
650 ms |
189944 KB |
Output is correct |
21 |
Correct |
419 ms |
189308 KB |
Output is correct |
22 |
Correct |
183 ms |
170952 KB |
Output is correct |
23 |
Correct |
148 ms |
165648 KB |
Output is correct |
24 |
Correct |
169 ms |
170808 KB |
Output is correct |
25 |
Correct |
168 ms |
169320 KB |
Output is correct |
26 |
Correct |
164 ms |
166048 KB |
Output is correct |
27 |
Correct |
143 ms |
169380 KB |
Output is correct |
28 |
Correct |
166 ms |
170808 KB |
Output is correct |
29 |
Correct |
143 ms |
169344 KB |
Output is correct |
30 |
Correct |
167 ms |
170940 KB |
Output is correct |
31 |
Correct |
145 ms |
169328 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
67 ms |
156872 KB |
Output is correct |
2 |
Correct |
142 ms |
180400 KB |
Output is correct |
3 |
Correct |
141 ms |
180512 KB |
Output is correct |
4 |
Correct |
71 ms |
156876 KB |
Output is correct |
5 |
Correct |
141 ms |
180416 KB |
Output is correct |
6 |
Correct |
132 ms |
180376 KB |
Output is correct |
7 |
Correct |
70 ms |
156876 KB |
Output is correct |
8 |
Correct |
74 ms |
156840 KB |
Output is correct |
9 |
Correct |
72 ms |
157016 KB |
Output is correct |
10 |
Correct |
72 ms |
157132 KB |
Output is correct |
11 |
Correct |
85 ms |
157136 KB |
Output is correct |
12 |
Correct |
135 ms |
180384 KB |
Output is correct |
13 |
Correct |
72 ms |
157336 KB |
Output is correct |
14 |
Correct |
78 ms |
157116 KB |
Output is correct |
15 |
Correct |
74 ms |
157112 KB |
Output is correct |
16 |
Runtime error |
1147 ms |
524288 KB |
Execution killed with signal 9 |
17 |
Halted |
0 ms |
0 KB |
- |