Submission #1290169

#TimeUsernameProblemLanguageResultExecution timeMemory
1290169muhammad-ahmadVoting Cities (NOI22_votingcity)C++20
10 / 100
8 ms868 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(){ for (int i = 0; i < N; i++) dist[i] = 1e18; dist[S] = 0; priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> pq; pq.push({0, S}); 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() { cin >> n >> e >> k; cin >> E; for (int i = 1; i <= e; i++){ int u, v, c; cin >> u >> v >> c; adj[u].push_back({v, c}); } cin >> Q >> S; int P; for (int i = 1; i <= 5; i++) cin >> P; bfs(); if (dist[E] == 1e18) cout << -1 << endl; else cout << dist[E] << 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...