Submission #1279985

#TimeUsernameProblemLanguageResultExecution timeMemory
1279985zagaroCrocodile's Underground City (IOI11_crocodile)C++20
0 / 100
0 ms332 KiB
#include<bits/stdc++.h> #include "crocodile.h" #include<ext/pb_ds/assoc_container.hpp> /**zagaro & lauren <3**/ #define mod 1000000007 //1e9 + 7 #define pi acos(-1) #define wl while #define str string #define ENDL "\n" #define sal ' ' #define tp_set ll #define prc(n) cout.precision(n);cout<<fixed; #define ord_set tree<tp_set, null_type, less<tp_set>, rb_tree_tag, tree_order_statistics_node_update> typedef long long ll; typedef bool bl; typedef char car; using namespace std; using namespace __gnu_pbds; int travel_plan(int n, int m, int R[][2], int L[], int k, int P[]){ ll r=LONG_LONG_MAX, nod, val, par; vector<vector<pair<ll,ll> > > adj(n+1); vector<ll> dis(n+1, LONG_LONG_MAX); vector<bl> vis(n+1, false); vector<bl> ext(n+1, false); vector<ll> vec(n+1, 0); for(int i=0;i<m;i++){ adj[R[i][0]+1].push_back({R[i][1]+1, L[i]}); adj[R[i][1]+1].push_back({R[i][0]+1, L[i]}); vec[R[i][0]+1]++; vec[R[i][1]+1]++; } for(int i=0;i<k;i++){ext[P[i]+1] = true;} priority_queue<tuple<ll,ll,ll>, vector<tuple<ll,ll,ll> >, greater<tuple<ll,ll,ll> > > pq; pq.push({0, 1, 0}); wl(!pq.empty()){ tie(val, nod, par) = pq.top(); pq.pop(); if(val < dis[nod]){ if(ext[nod]){ if(vis[par]){ r = val; break; } else vis[par] = true; } else { dis[nod] = val; for(int i=0;i<adj[nod].size();i++){ if(vec[adj[nod][i].first] != 2){ pq.push({val+adj[nod][i].second, adj[nod][i].first, nod}); } else if(ext[adj[nod][i].first])pq.push({val+adj[nod][i].second, adj[nod][i].first, nod}); } } } } return r; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...