Submission #1269369

#TimeUsernameProblemLanguageResultExecution timeMemory
1269369dhuyyyyCrocodile's Underground City (IOI11_crocodile)C++20
100 / 100
375 ms77116 KiB
#include <bits/stdc++.h> #define fi first #define se second #define int long long using namespace std; using ll = long long; using aa = array<int,3>; using ii = pair<int,int>; const int N = 1e5+5; const int MOD = 1e9+7; int v, u, kc, d[N][2]; bool vis[N]; vector <ii> adj[N]; priority_queue<ii,vector<ii>,greater<ii>> pq; signed travel_plan(signed N,signed M,signed R[][2],signed L[],signed K,signed P[]){ for (int i = 0; i < M; i++){ R[i][0]++; R[i][1]++; adj[R[i][0]].push_back({R[i][1],L[i]}); adj[R[i][1]].push_back({R[i][0],L[i]}); } for (int i = 1; i <= N; i++){ d[i][0] = 1e18; d[i][1] = 1e18; } for (int i = 0; i < K; i++){ P[i]++; d[P[i]][0] = d[P[i]][1] = 0; pq.push({0,P[i]}); } while (!pq.empty()){ tie(kc,u) = pq.top(); pq.pop(); if (vis[u]) continue; vis[u] = 1; for (ii it : adj[u]){ v = it.fi; int tmp = kc + it.se; if (tmp < d[v][1]){ d[v][1] = tmp; if (d[v][0] > d[v][1]) swap(d[v][0],d[v][1]); pq.push({d[v][1],v}); } } } return d[1][1]; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...