제출 #496346

#제출 시각아이디문제언어결과실행 시간메모리
496346MukhitaliValley (BOI19_valley)C++17
36 / 100
3093 ms12140 KiB
//bit chass 1 #include <bits/stdc++.h> #define x first #define y second #define el "\n" #define ll long long #define pb push_back #define pll pair <ll, ll> #define pii pair <int, int> #define all(x) x.begin(), x.end() #define lcm(x,y) x * y / __gcd(x, y) #define ibase ios_base::sync_with_stdio(0), cin.tie(0) using namespace std; const int N = 3e5 + 5, inf = 1e9 + 7, M = 2e6, MM = 2e6 + 5, K = 300; const ll MI = 2e18; const double P = 3.14; int n, s, q, e, p; ll mn; bool ok, c[N]; vector <pair <int, pii>> g[N]; void dfs(int v, ll l, int pr = -1) { if (v == e) { ok = 1; return; } if (c[v] && l < mn) mn = l; // cout << v << el; for (auto to : g[v]) { if (to.x == pr || to.y.y == p) continue; dfs(to.x, l + to.y.x, v); if (ok) return; } } void solve() { cin >> n >> s >> q >> e; for (int i = 1, x, y, w; i < n; i++) { cin >> x >> y >> w; g[x].pb({y, {w, i}}); g[y].pb({x, {w, i}}); } for (int i = 1, x; i <= s; i++) { cin >> x; c[x] = 1; } while (q--) { int i, r; cin >> i >> r; mn = MI; p = i; ok = 0; dfs(r, 0); if (ok) cout << "escaped" << el; else if (mn != MI) cout << mn << el; else cout << "oo" << el; } } int main() { ibase; int T = 1; // cin >> T; for (int i = 1; i <= T; i++) { // cout << "Case " << i << ": "; solve(); cout << el; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...