#include "crocodile.h"
#include<iostream>
#include<vector>
#include<queue>
#include<deque>
#include<string>
#include<fstream>
#include<algorithm>
#include <iomanip>
#include<map>
#include <set>
#include <unordered_map>
#include <stack>
#include <unordered_set>
#include <cmath>
#include <cstdint>
#define shit short int
#define ll long long
#define For(i, n) for(ll i = 0; i < (ll)n; i++)
#define ffor(i, a, n) for(ll i = (ll)a; i < (ll)n; i++)
#define rfor(i, n) for(ll i = (ll)n; i >= (ll)0; i--)
#define rffor(i, a, n) for(ll i = (ll)n; i >= (ll)a; i--)
#define vec vector
#define ff first
#define ss second
#define pb push_back
#define pii pair<ll, ll>
#define NEK 10000000000000000
#define mod 1000000007
#define mod2 1000000009
#define rsz resize
#define prv1 43
#define prv2 47
#define D 8
#define trav(a,x) for (auto& a: x)
#define pb push_back
#define ub upper_bound
#define lb lower_bound
#define sig 0.0000001
using namespace std;
int travel_plan(int n, int m, int r[][2], int l[], int k, int p[]) {
vec<int> dist(n, -2);
vec<vec<pii>> g(n);
For(i, m) {
g[r[i][0]].push_back({ r[i][1], l[i] });
g[r[i][1]].push_back({ r[i][0], l[i] });
}
priority_queue<pii> q;
For(i, k) {
dist[p[i]] = -1;
q.push({ 0, p[i] });
}
while (!q.empty()) {
int x = q.top().ss, d = q.top().ff * (-1); q.pop();
if (dist[x] >= 0) continue;
if (dist[x] == -2) {
dist[x] = -1;
continue;
}
dist[x] = d;
for (auto i : g[x]) {
q.push({ (d + i.ss) * (-1), i.ff });
}
}
return dist[0];
}
/*int main() {
int n, m, k; cin >> n >> m >> k;
int r[100][2], l[100], p[100];
For(i, m) cin >> r[i][0] >> r[i][1] >> l[i];
For(i, k) cin >> p[i];
cout << travel_plan(n, m, r, l, k, p) << '\n';
return 0;
}*/
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |