#include "cyberland.h"
#include <bits/stdc++.h>
#define range(it, a, b) for (ll it = a; it < b; it++)
#define all(x) begin(x), end(x)
#define ll long long
#define ull unsigned long long
#define INF64 ((ll) 1 << 62)
#define INF32 (1 << 30)
#define mset multiset
#define uset unordered_set
#define umap unordered_map
#define pqueue priority_queue
#define ptr(A) shared_ptr<A>
using namespace std;
struct TPos {
int i, w;
};
bool operator < (const TPos& a, const TPos& b) {
return a.w > b.w;
}
vector<vector<TPos>> adj;
vector<int> a;
vector<double> memo;
// void dijkstra() {
// pqueue<TPos> pq;
// pq.push({0, 0});
// TPos t, nt;
// while (!pq.empty()) {
// t = pq.top();
// pq.pop();
// if (memo[t.i] < t.w)
// continue;
// memo[t.i] = t.w;
// for (TPos& it : adj[t.i]) {
// nt = {it.i, (a[it.i] == 0 ? 0 : memo[t.i] + it.w)};
// if (memo[it.i] > nt.w)
// pq.push(nt);
// }
// }
// }
void dfs(int i, double w) {
memo[i] = (a[i] == 0 ? 0 : w);
for (TPos& it : adj[i]) {
if (memo[it.i] == INF64)
dfs(it.i, memo[i]+it.w);
}
}
double solve(int N, int M, int K, int H, vector<int> x, vector<int> y, vector<int> c, vector<int> arr) {
adj.clear();
adj.resize(N);
memo.clear();
memo.resize(N, INF64);
a = arr;
range(i, 0, M) {
adj[x[i]].push_back({y[i], c[i]});
adj[y[i]].push_back({x[i], c[i]});
}
dfs(0, 0);
return (memo[H] == INF64 ? -1 : memo[H]);
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
13 ms |
600 KB |
Wrong Answer. |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
15 ms |
604 KB |
Correct. |
2 |
Correct |
19 ms |
604 KB |
Correct. |
3 |
Correct |
21 ms |
604 KB |
Correct. |
4 |
Correct |
17 ms |
588 KB |
Correct. |
5 |
Correct |
25 ms |
604 KB |
Correct. |
6 |
Correct |
17 ms |
1628 KB |
Correct. |
7 |
Correct |
18 ms |
1436 KB |
Correct. |
8 |
Correct |
8 ms |
2648 KB |
Correct. |
9 |
Correct |
17 ms |
348 KB |
Correct. |
10 |
Correct |
16 ms |
348 KB |
Correct. |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
25 ms |
348 KB |
Wrong Answer. |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
26 ms |
8024 KB |
Wrong Answer. |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
16 ms |
600 KB |
Wrong Answer. |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
17 ms |
600 KB |
Wrong Answer. |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
22 ms |
604 KB |
Wrong Answer. |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
17 ms |
600 KB |
Wrong Answer. |
2 |
Halted |
0 ms |
0 KB |
- |