#include <bits/stdc++.h>
#define FOR(i, x, y) for (int i = x; i < y; i++)
typedef long long ll;
using namespace std;
set<int> graph[100001], second_visit[100001];
int visited[100001];
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int n, m, k, a, b;
cin >> n >> m >> k >> a >> b;
FOR(i, 0, m) {
int u, v;
cin >> u >> v;
graph[u].insert(v);
graph[v].insert(u);
second_visit[u].insert(v);
second_visit[v].insert(u);
}
priority_queue<pair<int, int>> pq;
pq.push({-1, k});
while (pq.size()) {
pair<int, int> curr = pq.top();
pq.pop();
if (!visited[curr.second]) {
visited[curr.second] = -curr.first;
for (int i : graph[curr.second]) {
pq.push({curr.first - a, i});
vector<int> to_remove;
for (int j : second_visit[i]) {
if (graph[curr.second].find(j) == graph[curr.second].end()) {
to_remove.push_back(j);
pq.push({curr.first - b, j});
}
}
for (int j : to_remove) second_visit[i].erase(j);
}
}
}
FOR(i, 1, n + 1) cout << visited[i] - 1 << '\n';
return 0;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
10 ms |
9728 KB |
Output is correct |
2 |
Correct |
9 ms |
9728 KB |
Output is correct |
3 |
Correct |
9 ms |
9728 KB |
Output is correct |
4 |
Correct |
10 ms |
9820 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
9 ms |
9728 KB |
Output is correct |
2 |
Correct |
9 ms |
9728 KB |
Output is correct |
3 |
Correct |
10 ms |
9728 KB |
Output is correct |
4 |
Correct |
10 ms |
9728 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
10 ms |
9856 KB |
Output is correct |
2 |
Correct |
11 ms |
9856 KB |
Output is correct |
3 |
Correct |
13 ms |
9856 KB |
Output is correct |
4 |
Correct |
11 ms |
9920 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
27 ms |
12416 KB |
Output is correct |
2 |
Correct |
25 ms |
12416 KB |
Output is correct |
3 |
Correct |
36 ms |
13184 KB |
Output is correct |
4 |
Correct |
32 ms |
13312 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
76 ms |
18676 KB |
Output is correct |
2 |
Correct |
74 ms |
18676 KB |
Output is correct |
3 |
Correct |
101 ms |
18120 KB |
Output is correct |
4 |
Correct |
121 ms |
21240 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
123 ms |
24728 KB |
Output is correct |
2 |
Correct |
108 ms |
22900 KB |
Output is correct |
3 |
Correct |
223 ms |
27908 KB |
Output is correct |
4 |
Correct |
217 ms |
29304 KB |
Output is correct |
5 |
Correct |
152 ms |
25820 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
161 ms |
27700 KB |
Output is correct |
2 |
Correct |
105 ms |
23292 KB |
Output is correct |
3 |
Correct |
272 ms |
29768 KB |
Output is correct |
4 |
Correct |
228 ms |
29472 KB |
Output is correct |
5 |
Correct |
173 ms |
27848 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
177 ms |
30572 KB |
Output is correct |
2 |
Correct |
151 ms |
28528 KB |
Output is correct |
3 |
Correct |
285 ms |
29824 KB |
Output is correct |
4 |
Correct |
233 ms |
29352 KB |
Output is correct |
5 |
Correct |
189 ms |
29636 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
179 ms |
29172 KB |
Output is correct |
2 |
Correct |
153 ms |
29168 KB |
Output is correct |
3 |
Correct |
251 ms |
29944 KB |
Output is correct |
4 |
Correct |
202 ms |
29432 KB |
Output is correct |
5 |
Correct |
217 ms |
31548 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
171 ms |
30072 KB |
Output is correct |
2 |
Correct |
155 ms |
29820 KB |
Output is correct |
3 |
Correct |
252 ms |
30072 KB |
Output is correct |
4 |
Correct |
201 ms |
29432 KB |
Output is correct |
5 |
Correct |
217 ms |
31544 KB |
Output is correct |