Submission #338784

#TimeUsernameProblemLanguageResultExecution timeMemory
338784CSQ31Crocodile's Underground City (IOI11_crocodile)C++14
0 / 100
3 ms3436 KiB
#include "crocodile.h" #include<bits/stdc++.h> using namespace std; #define pb push_back #define fi first #define se second #define mp make_pair #define all(a) a.begin(),a.end() #define sz(a) (int)(a.size()) #define lb lower_bound #define ub upper_bound #define owo ios_base::sync_with_stdio(0);cin.tie(0); #define MOD (ll)(1e9+7) #define INF (ll)(1e18) #define debug(...) fprintf(stderr, __VA_ARGS__),fflush(stderr) #define time__(d) for(long blockTime = 0; (blockTime == 0 ? (blockTime=clock()) != 0 : false);\ debug("%s time : %.4fs\n", d, (double)(clock() - blockTime) / CLOCKS_PER_SEC)) typedef long long int ll; typedef long double ld; typedef pair<ll,ll> PII; typedef pair<int,int> pii; typedef vector<vector<int>> vii; typedef vector<vector<ll>> VII; ll gcd(ll A,ll B) {if(!B)return A;return gcd(B,A%B);} vector<vector<PII>> adj(100010); vector<ll>dist(100010,INF); int travel_plan(int N, int M, int R[][2], int L[], int K, int P[]) { for(int i=0;i<M;i++){ adj[R[i][1]].pb({R[i][0],L[i]}); adj[R[i][0]].pb({R[i][1],L[i]}); } priority_queue<PII,vector<PII>,greater<PII>>pq; for(int i=0;i<K;i++){ pq.push({0,P[i]}); dist[P[i]] = 0; } vector<PII>mn(N,{INF,INF}); while(!pq.empty()){ int v = pq.top().se; ll d = pq.top().fi; pq.pop(); if(d != dist[v])continue; //cout<<d<<" "<<v<<'\n'; for(auto x:adj[v]){ int to = x.fi; ll w = x.se; if(mn[to].fi == INF)mn[to].fi = w+d; else{ if(mn[to].se == INF)mn[to].se = w+d; if(mn[to].fi > mn[to].se)swap(mn[to].fi,mn[to].se); if(mn[to].se > w+d){ if(mn[to].fi >= w+d){ mn[to].se = mn[to].fi; mn[to].fi = w+d; }else{ mn[to].se = w+d; } } } //cout<<mn[to].fi<<" "<<mn[to].se<<'\n'; if(mn[to].se != INF && mn[to].se < dist[to]){ dist[to] = mn[to].se; pq.push({dist[to],to}); } } } return dist[0]; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...