제출 #756610

#제출 시각아이디문제언어결과실행 시간메모리
756610siewjhCrocodile's Underground City (IOI11_crocodile)C++17
46 / 100
3 ms3284 KiB
#include "crocodile.h" #include <bits/stdc++.h> using namespace std; const int MAXN = 100005; const int inf = 1e9 + 7; vector<pair<int, int>> adj[MAXN]; int dp[MAXN]; bool vis[MAXN], isexit[MAXN]; int dfs(int x){ if (isexit[x]) return 0; if (dp[x] != -1) return dp[x]; if (vis[x]) return inf; vis[x] = 1; vector<int> res; for (auto nxt : adj[x]){ int nn = nxt.first, nd = nxt.second; int nres = min(dfs(nn) + nd, inf); res.push_back(nres); } sort(res.begin(), res.end()); if (res.size() < 2) return dp[x] = inf; else return dp[x] = res[1]; } int travel_plan(int nodes, int edges, int elist[][2], int elen[], int exits, int exarr[]){ for (int i = 0; i < edges; i++){ int a = elist[i][0], b = elist[i][1], d = elen[i]; adj[a].push_back({b, d}); adj[b].push_back({a, d}); } for (int i = 0; i < exits; i++) isexit[exarr[i]] = 1; memset(dp, -1, sizeof(dp)); return dfs(0); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...