Submission #1277548

#TimeUsernameProblemLanguageResultExecution timeMemory
1277548quanduongxuan12Crocodile's Underground City (IOI11_crocodile)C++20
100 / 100
257 ms47680 KiB
#include "crocodile.h" #include <bits/stdc++.h> using namespace std; #define name "crocodile" #define MAXN 100005 #define pb push_back #define pf push_front #define ll long long #define ii pair<int, int> #define fs first #define sc second #define ill pair<int, ll> #define lli pair<ll, int> #define llll pair<ll, ll> #define all(v) v.begin(),v.end() #define uni(v) v.erase(unique(all(v)),v.end()) #define bit(n,i) (((n)>>(i))&1) #define FOR(i,a,b) for (int i=(a),_b=(b); i<=_b; i++) #define FORD(i,a,b) for (int i=(a),_b=(b); i>=_b; i--) #define MASK(i) (1LL<<(i)) const ll INF=1e18; const int MOD=1e9+7; void add(int &u, int v){ u+=v; if (u>=MOD) u-=MOD; } void sub(int &u, int v){ u-=v; if (u<0) u+=MOD; } void minimize(int &u, int v){ u=min(u,v); } void maximize(int &u, int v){ u=max(u,v); } long long Rand(long long l, long long r){ ll tmp=0; FOR(i,1,4) tmp=((tmp<<15)^(((1<<15)-1)&rand())); return l+tmp%(r-l+1); } int n,m,k; bool spec[MAXN]; vector<ii> adj[MAXN]; ll d[MAXN][2]; void dijkstra(){ priority_queue<lli,vector<lli>,greater<lli>> pq; FOR(i,1,n){ if (spec[i]){ d[i][0]=d[i][1]=0; pq.push({0LL,i}); } else d[i][0]=d[i][1]=INF; } while (pq.size()){ lli tmp=pq.top(); pq.pop(); ll w=tmp.fs; int u=tmp.sc; if (w>d[u][1]) continue; for (ii pairs: adj[u]){ int v=pairs.fs; ll wei=pairs.sc; if (w+wei<d[v][0]){ if (d[v][0]<d[v][1]){ pq.push({d[v][0],v}); } d[v][1]=d[v][0]; d[v][0]=w+wei; } else if (w+wei<d[v][1]){ d[v][1]=w+wei; pq.push({d[v][1],v}); } } } } int travel_plan(int N, int M, int R[][2], int L[], int K, int P[]){ n=N; m=M; k=K; FOR(i,0,m-1){ int x=R[i][0],y=R[i][1]; ++x; ++y; int w=L[i]; adj[x].pb({y,w}); adj[y].pb({x,w}); } FOR(i,0,k-1) spec[++P[i]]=1; dijkstra(); return d[1][1]; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...