Submission #850591

#TimeUsernameProblemLanguageResultExecution timeMemory
850591hqminhuwuCrocodile's Underground City (IOI11_crocodile)C++17
100 / 100
429 ms86076 KiB
#include <bits/stdc++.h> #define forr(_a,_b,_c) for(_a = _b; _a <= _c; ++_a) #define ford(_a,_b,_c) for(_a = (_b) + 1; _a --> _c;) #define forf(_a,_b,_c) for(_a = _b; _a < _c; ++_a) #define st first #define nd second #define ll long long #define ull unsigned long long #define pii pair <ll,ll> #define pll pair <ll,ll> #define piii pair <int,pii> #define vi vector <int> #define pb push_back #define mp make_pair #define all(x) begin(x),end(x) #define file "test" using namespace std; const int N = 2e5 + 5; const ll oo = 1e16; const ll mod = 1e9 + 7; priority_queue <pll,vector<pll>,greater<pll>> q; int n,m,k,i,u,v,w; pll d[N]; vector <pll> a[N]; bool vis[N]; ll travel_plan (int nn, int mm, int r[][2], int l[], int kk, int p[]){ //ios_base::sync_with_stdio(0); cin.tie(0); n = nn; m = mm; k = kk; forr (i,0,m - 1){ u = r[i][0], v = r[i][1], w = l[i]; a[u].pb({v,w}); a[v].pb({u,w}); } forr (i,0,n - 1) d[i] = {oo,oo}; forr (i,0,k - 1) u = p[i], q.push({0,u}),d[u] = {0,0}; while (!q.empty()){ pii u = q.top(); q.pop(); if (vis[u.nd]) continue; vis[u.nd] = 1; //cout << u.st << " " << u.nd << "\n"; for (pll v : a[u.nd]){ ll cost = u.st + v.nd; //cout << cost << "\n"; if (cost < d[v.st].st){ d[v.st].nd = d[v.st].st; d[v.st].st = cost; //if (d[v.st].nd != oo) q.push({d[v.st].nd,v.st}); } else if (cost < d[v.st].nd){ d[v.st].nd = cost; q.push({cost,v.st}); } } } return d[0].nd; } /* */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...