Submission #1138480

#TimeUsernameProblemLanguageResultExecution timeMemory
1138480kitkat12악어의 지하 도시 (IOI11_crocodile)C++20
46 / 100
24 ms580 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define mp make_pair #define pb push_back #define F first #define S second #define debug(x) std::cout << #x << ": " << x << "\n" #define all(v) v.begin(), v.end() #define li(i,a,b) for (int (i) = (a); (i) < (b); (i)++) #define endl '\n' #define mem(name,val) memset(name,val,sizeof(name)) #define min(a,b) (a<=b ? a : b) #define max(a,b) (a>=b ? a : b) //using u64 = uint64_t; //using u128 = __uint128_t; int travel_plan(int n, int m, int (*r)[2], int *l, int k, int *p){ const ll inf = 1e18; vector<pair<int,ll>> adj[n]; vector<bool> end(n,0); vector<ll> val(n,0); li(i,0,m){ adj[r[i][0]].pb({r[i][1],l[i]}); adj[r[i][1]].pb({r[i][0],l[i]}); } li(i,0,k)end[p[i]]=1; li(_,0,5*n){ li(i,0,n){ ll b=inf,sb=inf; for(auto u : adj[i]){ if(!end[u.F]) continue; ll v = val[u.F] + u.S; if(v<=b){ sb=b; b=v; } else if (v < sb){ sb=v; } } if(sb!=inf){ val[i]=sb; end[i]=1; } } } return val[0]; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...