제출 #1290184

#제출 시각아이디문제언어결과실행 시간메모리
1290184muhammad-ahmadVoting Cities (NOI22_votingcity)C++20
20 / 100
10 ms840 KiB
// #include <bits/stdc++.h> #include <iostream> #include <cmath> #include <algorithm> #include <map> #include <vector> #include <iomanip> #include <string> #include <queue> #include <set> #include <deque> #include <numeric> #include <stack> #include <chrono> using namespace std; #define int long long #define endl '\n' #define all(v) (v).begin(), (v).end() #define rall(v) (v).rbegin(), (v).rend() #define fi first #define se second const int N = 5005; vector<pair<int, int>> adj[N]; int n, e, k, S, E, Q, dist[N]; void bfs(int x){ dist[x] = 0; priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> pq; pq.push({0, x}); while (pq.size()){ auto [d, u] = pq.top(); pq.pop(); for (auto [v, w] : adj[u]){ if (dist[v] > d + w){ dist[v] = d + w; pq.push({dist[v], v}); } } } } void solve() { for (int i = 0; i < N; i++) dist[i] = 1e18; cin >> n >> e >> k; // cin >> E; vector<int> t; for (int i = 1; i <= k; i++){ cin >> E; t.push_back(E); } for (int i = 1; i <= e; i++){ int u, v, c; cin >> u >> v >> c; adj[v].push_back({u, c}); } for (auto i : t) bfs(i); cin >> Q; int P; for (int q = 1; q <= Q; q++){ // cout << 1 << endl; int S; cin >> S; for (int i = 0; i < 5; i++) cin >> P; if (dist[S] == 1e18) cout << -1 << endl; else cout << dist[S] << endl; } return; } signed main() { srand(chrono::steady_clock::now().time_since_epoch().count()); int tc = 1; // cin >> tc; while (tc--) solve(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...