제출 #1042348

#제출 시각아이디문제언어결과실행 시간메모리
1042348allin27xCrocodile's Underground City (IOI11_crocodile)C++17
46 / 100
2 ms8796 KiB
#include <bits/stdc++.h> using namespace std; #define int long long const int N = 1e5+4; const int INF = 1e9+2; vector<pair<int,int>> adj[N]; int vis[N]; int ex[N]; int ans[N]; int dfs(int i){ // cout<<i<<'\n'; vis[i] = 1; if (ex[i]) return 0; int b1=INF, b2=INF; for (auto [c,w]: adj[i]){ if (vis[c] && ans[c] == -1) continue; int v = (vis[c])? w + ans[c] : w + dfs(c); if (v<b1) b2=b1, b1=v; else if (v<b2) b2=v; } // cout<<i<<' '<<b1<<' '<<b2<<'\n'; ans[i] = b2; return b2; } signed travel_plan(signed n, signed m, signed r[][2], signed l[], signed k, signed p[]){ 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]}); } for (int i=0; i<n; i++) ans[i] = -1; for (int i=0; i<k; i++) ex[p[i]] = 1, ans[p[i]] = 0; return (signed)dfs(0); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...