제출 #1305943

#제출 시각아이디문제언어결과실행 시간메모리
1305943orgiloogii악어의 지하 도시 (IOI11_crocodile)C++20
46 / 100
1 ms580 KiB
#include "crocodile.h" #include <bits/stdc++.h> #define ff first #define ss second using namespace std; vector <vector <pair <int, int>>> adj; vector <int> vis; vector <long long> fin; void init(int u, int w) { if (adj[u].size() == 1) { fin[u] = w; } vis[u] = 1; for (auto x : adj[u]) { if (vis[x.ff]) continue; init(x.ff, w + x.ss); } } void dfs(int u) { int m = INT_MAX, m1 = INT_MAX; vis[u] = 1; for (auto [x, y] : adj[u]) { if (vis[x]) continue; dfs(x); if (fin[x] < m) { m1 = m; m = fin[x]; } else if (fin[x] < m1) { m1 = fin[x]; } } if (adj[u].size() >= 3) { fin[u] = m1; } } int travel_plan(int n, int m, int r[][2], int l[], int k, int p[]) { adj.resize(n); vis.resize(n, 0); fin.resize(n, 0); for (int i = 0;i < m;i++) { adj[r[i][0]].push_back({r[i][1], l[i]}); adj[r[i][1]].push_back({r[i][0], l[i]}); } init(0, 0); vis.clear(); vis.resize(n, 0); dfs(0); return fin[0]; } //int main() { //}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...