Submission #420520

#TimeUsernameProblemLanguageResultExecution timeMemory
420520snasibov05Crocodile's Underground City (IOI11_crocodile)C++14
100 / 100
996 ms102688 KiB
#include "crocodile.h" #include <vector> #include <algorithm> #include <queue> using namespace std; #define ll long long #define pb push_back #define pii pair<ll, ll> #define f first; #define s second; #define oo 1000000000000000000ll vector<vector<pii>> ed; vector<bool> ext; vector<int> visited; vector<ll> res; ll dijkstra(int n){ vector<ll> dist1(n, oo), dist2(n, oo); vector<bool> visited(n); priority_queue<pii, vector<pii>, greater<pii>> pq; for (int i = 0; i < n; ++i) { if (ext[i]) dist1[i] = dist2[i] = 0, pq.push({0, i}); } while (!pq.empty()){ int cur = pq.top().s; ll d = pq.top().f; pq.pop(); if (visited[cur]) continue; visited[cur] = true; for (auto [to, l] : ed[cur]){ if (visited[to]) continue; dist2[to] = min(dist2[to], d + l); if (dist1[to] > dist2[to]) swap(dist1[to], dist2[to]); pq.push({dist2[to], to}); } } return dist2[0]; } int travel_plan(int n, int m, int r[][2], int l[], int k, int p[]){ ed.resize(n); ext.resize(n); visited.resize(n); res.resize(n); for (int i = 0; i < m; ++i) { ed[r[i][0]].pb({r[i][1], l[i]}); ed[r[i][1]].pb({r[i][0], l[i]}); } for (int i = 0; i < k; ++i) { ext[p[i]] = true; } return (int)dijkstra(n); }

Compilation message (stderr)

crocodile.cpp: In function 'long long int dijkstra(int)':
crocodile.cpp:37:19: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   37 |         for (auto [to, l] : ed[cur]){
      |                   ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...